diff --git a/.DS_Store b/.DS_Store index 83dce96..902536a 100644 Binary files a/.DS_Store and b/.DS_Store differ diff --git a/404.html b/404.html index 13c6350..f022b88 100644 --- a/404.html +++ b/404.html @@ -33,11 +33,11 @@ - - + +

404

Looks like we've got some broken links.
Take me home
- + diff --git a/assets/404.html-C7HeqhPM.js b/assets/404.html-BKPqvtPY.js similarity index 83% rename from assets/404.html-C7HeqhPM.js rename to assets/404.html-BKPqvtPY.js index 415f5b5..663c21e 100644 --- a/assets/404.html-C7HeqhPM.js +++ b/assets/404.html-BKPqvtPY.js @@ -1 +1 @@ -import{_ as e,c as o,b as n,o as a}from"./app-D5IplOGW.js";const l={};function r(s,t){return a(),o("div",null,t[0]||(t[0]=[n("p",null,"404 Not Found",-1)]))}const _=e(l,[["render",r],["__file","404.html.vue"]]),i=JSON.parse('{"path":"/404.html","title":"","lang":"en-US","frontmatter":{"layout":"NotFound"},"headers":[],"git":{},"filePathRelative":null}');export{_ as comp,i as data}; +import{_ as e,c as o,b as n,o as a}from"./app-UNZ7W0t3.js";const l={};function r(s,t){return a(),o("div",null,t[0]||(t[0]=[n("p",null,"404 Not Found",-1)]))}const _=e(l,[["render",r],["__file","404.html.vue"]]),i=JSON.parse('{"path":"/404.html","title":"","lang":"en-US","frontmatter":{"layout":"NotFound"},"headers":[],"git":{},"filePathRelative":null}');export{_ as comp,i as data}; diff --git a/assets/advanced-action-discard.html-DW2mWNkL.js b/assets/advanced-action-discard.html-C_RBbw9g.js similarity index 98% rename from assets/advanced-action-discard.html-DW2mWNkL.js rename to assets/advanced-action-discard.html-C_RBbw9g.js index 8f05af2..ea11a0c 100644 --- a/assets/advanced-action-discard.html-DW2mWNkL.js +++ b/assets/advanced-action-discard.html-C_RBbw9g.js @@ -1,4 +1,4 @@ -import{_ as a,c as s,a as e,o as i}from"./app-D5IplOGW.js";const l={};function c(t,n){return i(),s("div",null,n[0]||(n[0]=[e(`

回顾

在上一节中, 我们只是简单的调用 actions 接口来进行出牌操作。但是我们知道在 雀魂 游戏中在立直(Riichi)后全程由服务端自动丢弃最后一张牌, 所以我们在上一章节的代码就要改一改, 在自己已经立直的情况下, 取消该动作。

如何判断

示例代码

package main
+import{_ as a,c as s,a as e,o as i}from"./app-UNZ7W0t3.js";const l={};function c(t,n){return i(),s("div",null,n[0]||(n[0]=[e(`

回顾

在上一节中, 我们只是简单的调用 actions 接口来进行出牌操作。但是我们知道在 雀魂 游戏中在立直(Riichi)后全程由服务端自动丢弃最后一张牌, 所以我们在上一章节的代码就要改一改, 在自己已经立直的情况下, 取消该动作。

如何判断

  • gamestate 这个库中提供了一些游戏状态可以辅助你进行判断游戏当前的状态

示例代码

package main
 
 import (
   "github.com/moxcomic/Archer/actions"
diff --git a/assets/advanced-action-discard.html-Crxikf7r.js b/assets/advanced-action-discard.html-DydQEMZr.js
similarity index 98%
rename from assets/advanced-action-discard.html-Crxikf7r.js
rename to assets/advanced-action-discard.html-DydQEMZr.js
index 3a98397..7348590 100644
--- a/assets/advanced-action-discard.html-Crxikf7r.js
+++ b/assets/advanced-action-discard.html-DydQEMZr.js
@@ -1,4 +1,4 @@
-import{_ as a,c as n,a as s,o as i}from"./app-D5IplOGW.js";const l={};function t(c,e){return i(),n("div",null,e[0]||(e[0]=[s(`

Review

In the previous section, we simply called the actions interface to perform a discard operation. However, we know that in the game of Majsoul, after declaring Riichi, the server will automatically discard the last tile for the player. Therefore, we need to modify the code from the previous section to cancel this action when the player has already declared Riichi.

How to Determine the State

  • The gamestate library provides some game states that can help you determine the current status of the game.

Example Code

package main
+import{_ as a,c as n,a as s,o as i}from"./app-UNZ7W0t3.js";const l={};function t(c,e){return i(),n("div",null,e[0]||(e[0]=[s(`

Review

In the previous section, we simply called the actions interface to perform a discard operation. However, we know that in the game of Majsoul, after declaring Riichi, the server will automatically discard the last tile for the player. Therefore, we need to modify the code from the previous section to cancel this action when the player has already declared Riichi.

How to Determine the State

  • The gamestate library provides some game states that can help you determine the current status of the game.

Example Code

package main
 
 import (
   "github.com/moxcomic/Archer/actions"
diff --git a/assets/advanced-event-login.html-B-5f4SKm.js b/assets/advanced-event-login.html-Cmd37tve.js
similarity index 98%
rename from assets/advanced-event-login.html-B-5f4SKm.js
rename to assets/advanced-event-login.html-Cmd37tve.js
index bc24385..21218d0 100644
--- a/assets/advanced-event-login.html-B-5f4SKm.js
+++ b/assets/advanced-event-login.html-Cmd37tve.js
@@ -1,4 +1,4 @@
-import{_ as n,c as a,a as s,o as i}from"./app-D5IplOGW.js";const l={};function t(d,e){return i(),a("div",null,e[0]||(e[0]=[s(`

Basic Review

In the previous section, we introduced the basic callback function for Mahjong event login. However, in real game scenarios, when this is invoked, it is not certain whether the player has already entered the game lobby. Further checks are needed to determine whether the player has entered the game and if the game has started.

How to Determine

The lobbymgr library provides game status information that can help you determine the current state of the game.

Example Code

package main
+import{_ as n,c as a,a as s,o as i}from"./app-UNZ7W0t3.js";const l={};function t(d,e){return i(),a("div",null,e[0]||(e[0]=[s(`

Basic Review

In the previous section, we introduced the basic callback function for Mahjong event login. However, in real game scenarios, when this is invoked, it is not certain whether the player has already entered the game lobby. Further checks are needed to determine whether the player has entered the game and if the game has started.

How to Determine

The lobbymgr library provides game status information that can help you determine the current state of the game.

Example Code

package main
 
 import (
   "github.com/moxcomic/Archer/mgr/lobbymgr"
diff --git a/assets/advanced-event-login.html-Dqp_oLx5.js b/assets/advanced-event-login.html-DeERKUVx.js
similarity index 98%
rename from assets/advanced-event-login.html-Dqp_oLx5.js
rename to assets/advanced-event-login.html-DeERKUVx.js
index 4c91729..8c1cb9f 100644
--- a/assets/advanced-event-login.html-Dqp_oLx5.js
+++ b/assets/advanced-event-login.html-DeERKUVx.js
@@ -1,4 +1,4 @@
-import{_ as s,c as a,a as e,o as l}from"./app-D5IplOGW.js";const i={};function c(d,n){return l(),a("div",null,n[0]||(n[0]=[e(`

基础回顾

上一节介绍了麻将事件的基础登入回调函数, 但是在实际的游戏中被调用时此时并不能确定是否已经进入了游戏大厅, 还需要进一步判断是否已经进入了游戏, 以及是否已经开始游戏

如何判断

lobbymgr 这个库中提供了一些游戏状态可以辅助你进行判断游戏当前的状态

示例代码

package main
+import{_ as s,c as a,a as e,o as l}from"./app-UNZ7W0t3.js";const i={};function c(d,n){return l(),a("div",null,n[0]||(n[0]=[e(`

基础回顾

上一节介绍了麻将事件的基础登入回调函数, 但是在实际的游戏中被调用时此时并不能确定是否已经进入了游戏大厅, 还需要进一步判断是否已经进入了游戏, 以及是否已经开始游戏

如何判断

lobbymgr 这个库中提供了一些游戏状态可以辅助你进行判断游戏当前的状态

示例代码

package main
 
 import (
   "github.com/moxcomic/Archer/mgr/lobbymgr"
diff --git a/assets/app-D5IplOGW.js b/assets/app-UNZ7W0t3.js
similarity index 97%
rename from assets/app-D5IplOGW.js
rename to assets/app-UNZ7W0t3.js
index 2630cb4..a6c3bd6 100644
--- a/assets/app-D5IplOGW.js
+++ b/assets/app-UNZ7W0t3.js
@@ -1,4 +1,4 @@
-const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/get-started.html-DtqSxnn5.js","assets/account_settings-Ch5g1JML.js","assets/get-started.html-0XfMm4nY.js"])))=>i.map(i=>d[i]);
+const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/get-started.html-DlqG4N74.js","assets/account_settings-Ch5g1JML.js","assets/get-started.html-pFpjH6c0.js"])))=>i.map(i=>d[i]);
 /**
 * @vue/shared v3.5.3
 * (c) 2018-present Yuxi (Evan) You and Vue contributors
@@ -15,7 +15,7 @@ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/get-started.htm
 * @vue/runtime-dom v3.5.3
 * (c) 2018-present Yuxi (Evan) You and Vue contributors
 * @license MIT
-**/let No;const Qs=typeof window<"u"&&window.trustedTypes;if(Qs)try{No=Qs.createPolicy("vue",{createHTML:e=>e})}catch{}const Gl=No?e=>No.createHTML(e):e=>e,Fu="http://www.w3.org/2000/svg",Uu="http://www.w3.org/1998/Math/MathML",Ct=typeof document<"u"?document:null,Xs=Ct&&Ct.createElement("template"),Wu={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,r)=>{const o=t==="svg"?Ct.createElementNS(Fu,e):t==="mathml"?Ct.createElementNS(Uu,e):n?Ct.createElement(e,{is:n}):Ct.createElement(e);return e==="select"&&r&&r.multiple!=null&&o.setAttribute("multiple",r.multiple),o},createText:e=>Ct.createTextNode(e),createComment:e=>Ct.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>Ct.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,n,r,o,s){const i=n?n.previousSibling:t.lastChild;if(o&&(o===s||o.nextSibling))for(;t.insertBefore(o.cloneNode(!0),n),!(o===s||!(o=o.nextSibling)););else{Xs.innerHTML=Gl(r==="svg"?`${e}`:r==="mathml"?`${e}`:e);const l=Xs.content;if(r==="svg"||r==="mathml"){const a=l.firstChild;for(;a.firstChild;)l.appendChild(a.firstChild);l.removeChild(a)}t.insertBefore(l,n)}return[i?i.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}},It="transition",Mn="animation",Xn=Symbol("_vtc"),Yl={name:String,type:String,css:{type:Boolean,default:!0},duration:[String,Number,Object],enterFromClass:String,enterActiveClass:String,enterToClass:String,appearFromClass:String,appearActiveClass:String,appearToClass:String,leaveFromClass:String,leaveActiveClass:String,leaveToClass:String},qu=Oe({},bl,Yl),Ku=e=>(e.displayName="Transition",e.props=qu,e),ds=Ku((e,{slots:t})=>we(Hc,Gu(e),t)),Jt=(e,t=[])=>{ee(e)?e.forEach(n=>n(...t)):e&&e(...t)},Zs=e=>e?ee(e)?e.some(t=>t.length>1):e.length>1:!1;function Gu(e){const t={};for(const E in e)E in Yl||(t[E]=e[E]);if(e.css===!1)return t;const{name:n="v",type:r,duration:o,enterFromClass:s=`${n}-enter-from`,enterActiveClass:i=`${n}-enter-active`,enterToClass:l=`${n}-enter-to`,appearFromClass:a=s,appearActiveClass:f=i,appearToClass:u=l,leaveFromClass:c=`${n}-leave-from`,leaveActiveClass:h=`${n}-leave-active`,leaveToClass:m=`${n}-leave-to`}=e,v=Yu(o),y=v&&v[0],L=v&&v[1],{onBeforeEnter:T,onEnter:w,onEnterCancelled:g,onLeave:b,onLeaveCancelled:D,onBeforeAppear:K=T,onAppear:M=w,onAppearCancelled:S=g}=t,B=(E,H,Q)=>{Qt(E,H?u:l),Qt(E,H?f:i),Q&&Q()},C=(E,H)=>{E._isLeaving=!1,Qt(E,c),Qt(E,m),Qt(E,h),H&&H()},N=E=>(H,Q)=>{const se=E?M:w,O=()=>B(H,E,Q);Jt(se,[H,O]),ei(()=>{Qt(H,E?a:s),Mt(H,E?u:l),Zs(se)||ti(H,r,y,O)})};return Oe(t,{onBeforeEnter(E){Jt(T,[E]),Mt(E,s),Mt(E,i)},onBeforeAppear(E){Jt(K,[E]),Mt(E,a),Mt(E,f)},onEnter:N(!1),onAppear:N(!0),onLeave(E,H){E._isLeaving=!0;const Q=()=>C(E,H);Mt(E,c),Mt(E,h),Xu(),ei(()=>{E._isLeaving&&(Qt(E,c),Mt(E,m),Zs(b)||ti(E,r,L,Q))}),Jt(b,[E,Q])},onEnterCancelled(E){B(E,!1),Jt(g,[E])},onAppearCancelled(E){B(E,!0),Jt(S,[E])},onLeaveCancelled(E){C(E),Jt(D,[E])}})}function Yu(e){if(e==null)return null;if(Ee(e))return[yo(e.enter),yo(e.leave)];{const t=yo(e);return[t,t]}}function yo(e){return za(e)}function Mt(e,t){t.split(/\s+/).forEach(n=>n&&e.classList.add(n)),(e[Xn]||(e[Xn]=new Set)).add(t)}function Qt(e,t){t.split(/\s+/).forEach(r=>r&&e.classList.remove(r));const n=e[Xn];n&&(n.delete(t),n.size||(e[Xn]=void 0))}function ei(e){requestAnimationFrame(()=>{requestAnimationFrame(e)})}let Ju=0;function ti(e,t,n,r){const o=e._endId=++Ju,s=()=>{o===e._endId&&r()};if(n)return setTimeout(s,n);const{type:i,timeout:l,propCount:a}=Qu(e,t);if(!i)return r();const f=i+"end";let u=0;const c=()=>{e.removeEventListener(f,h),s()},h=m=>{m.target===e&&++u>=a&&c()};setTimeout(()=>{u(n[v]||"").split(", "),o=r(`${It}Delay`),s=r(`${It}Duration`),i=ni(o,s),l=r(`${Mn}Delay`),a=r(`${Mn}Duration`),f=ni(l,a);let u=null,c=0,h=0;t===It?i>0&&(u=It,c=i,h=s.length):t===Mn?f>0&&(u=Mn,c=f,h=a.length):(c=Math.max(i,f),u=c>0?i>f?It:Mn:null,h=u?u===It?s.length:a.length:0);const m=u===It&&/\b(transform|all)(,|$)/.test(r(`${It}Property`).toString());return{type:u,timeout:c,propCount:h,hasTransform:m}}function ni(e,t){for(;e.lengthri(n)+ri(e[r])))}function ri(e){return e==="auto"?0:Number(e.slice(0,-1).replace(",","."))*1e3}function Xu(){return document.body.offsetHeight}function Zu(e,t,n){const r=e[Xn];r&&(t=(t?[t,...r]:[...r]).join(" ")),t==null?e.removeAttribute("class"):n?e.setAttribute("class",t):e.className=t}const zr=Symbol("_vod"),Jl=Symbol("_vsh"),Br={beforeMount(e,{value:t},{transition:n}){e[zr]=e.style.display==="none"?"":e.style.display,n&&t?n.beforeEnter(e):Hn(e,t)},mounted(e,{value:t},{transition:n}){n&&t&&n.enter(e)},updated(e,{value:t,oldValue:n},{transition:r}){!t!=!n&&(r?t?(r.beforeEnter(e),Hn(e,!0),r.enter(e)):r.leave(e,()=>{Hn(e,!1)}):Hn(e,t))},beforeUnmount(e,{value:t}){Hn(e,t)}};function Hn(e,t){e.style.display=t?e[zr]:"none",e[Jl]=!t}const ef=Symbol(""),tf=/(^|;)\s*display\s*:/;function nf(e,t,n){const r=e.style,o=Te(n);let s=!1;if(n&&!o){if(t)if(Te(t))for(const i of t.split(";")){const l=i.slice(0,i.indexOf(":")).trim();n[l]==null&&Ar(r,l,"")}else for(const i in t)n[i]==null&&Ar(r,i,"");for(const i in n)i==="display"&&(s=!0),Ar(r,i,n[i])}else if(o){if(t!==n){const i=r[ef];i&&(n+=";"+i),r.cssText=n,s=tf.test(n)}}else t&&e.removeAttribute("style");zr in e&&(e[zr]=s?r.display:"",e[Jl]&&(r.display="none"))}const oi=/\s*!important$/;function Ar(e,t,n){if(ee(n))n.forEach(r=>Ar(e,t,r));else if(n==null&&(n=""),t.startsWith("--"))e.setProperty(t,n);else{const r=rf(e,t);oi.test(n)?e.setProperty(qt(r),n.replace(oi,""),"important"):e[r]=n}}const si=["Webkit","Moz","ms"],Eo={};function rf(e,t){const n=Eo[t];if(n)return n;let r=nt(t);if(r!=="filter"&&r in e)return Eo[t]=r;r=or(r);for(let o=0;oSo||(uf.then(()=>So=0),So=Date.now());function df(e,t){const n=r=>{if(!r._vts)r._vts=Date.now();else if(r._vts<=n.attached)return;ut(hf(r,n.value),t,5,[r])};return n.value=e,n.attached=ff(),n}function hf(e,t){if(ee(t)){const n=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{n.call(e),e._stopped=!0},t.map(r=>o=>!o._stopped&&r&&r(o))}else return t}const ui=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,pf=(e,t,n,r,o,s)=>{const i=o==="svg";t==="class"?Zu(e,r,i):t==="style"?nf(e,n,r):rr(t)?Ko(t)||af(e,t,n,r,s):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):mf(e,t,r,i))?(of(e,t,r),!e.tagName.includes("-")&&(t==="value"||t==="checked"||t==="selected")&&li(e,t,r,i,s,t!=="value")):(t==="true-value"?e._trueValue=r:t==="false-value"&&(e._falseValue=r),li(e,t,r,i))};function mf(e,t,n,r){if(r)return!!(t==="innerHTML"||t==="textContent"||t in e&&ui(t)&&re(n));if(t==="spellcheck"||t==="draggable"||t==="translate"||t==="form"||t==="list"&&e.tagName==="INPUT"||t==="type"&&e.tagName==="TEXTAREA")return!1;if(t==="width"||t==="height"){const o=e.tagName;if(o==="IMG"||o==="VIDEO"||o==="CANVAS"||o==="SOURCE")return!1}return ui(t)&&Te(n)?!1:!!(t in e||e._isVueCE&&(/[A-Z]/.test(t)||!Te(n)))}const gf={esc:"escape",space:" ",up:"arrow-up",left:"arrow-left",right:"arrow-right",down:"arrow-down",delete:"backspace"},vf=(e,t)=>{const n=e._withKeys||(e._withKeys={}),r=t.join(".");return n[r]||(n[r]=o=>{if(!("key"in o))return;const s=qt(o.key);if(t.some(i=>i===s||gf[i]===s))return e(o)})},_f=Oe({patchProp:pf},Wu);let wo,fi=!1;function bf(){return wo=fi?wo:mu(_f),fi=!0,wo}const yf=(...e)=>{const t=bf().createApp(...e),{mount:n}=t;return t.mount=r=>{const o=Sf(r);if(o)return n(o,!0,Ef(o))},t};function Ef(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function Sf(e){return Te(e)?document.querySelector(e):e}var dr=e=>/^[a-z][a-z0-9+.-]*:/.test(e)||e.startsWith("//"),wf=/.md((\?|#).*)?$/,xf=(e,t="/")=>dr(e)||e.startsWith("/")&&!e.startsWith(t)&&!wf.test(e),to=e=>/^(https?:)?\/\//.test(e),di=e=>{if(!e||e.endsWith("/"))return e;let t=e.replace(/(^|\/)README.md$/i,"$1index.html");return t.endsWith(".md")?t=t.substring(0,t.length-3)+".html":t.endsWith(".html")||(t=t+".html"),t.endsWith("/index.html")&&(t=t.substring(0,t.length-10)),t},Cf="http://.",Pf=(e,t)=>{if(!e.startsWith("/")&&t){const n=t.slice(0,t.lastIndexOf("/"));return di(new URL(`${n}/${e}`,Cf).pathname)}return di(e)},Lf=(e,t)=>{const n=Object.keys(e).sort((r,o)=>{const s=o.split("/").length-r.split("/").length;return s!==0?s:o.length-r.length});for(const r of n)if(t.startsWith(r))return r;return"/"},Tf=/(#|\?)/,Ql=e=>{const[t,...n]=e.split(Tf);return{pathname:t,hashAndQueries:n.join("")}},Af=["link","meta","script","style","noscript","template"],kf=["title","base"],Rf=([e,t,n])=>kf.includes(e)?e:Af.includes(e)?e==="meta"&&t.name?`${e}.${t.name}`:e==="template"&&t.id?`${e}.${t.id}`:JSON.stringify([e,Object.entries(t).map(([r,o])=>typeof o=="boolean"?o?[r,""]:null:[r,o]).filter(r=>r!=null).sort(([r],[o])=>r.localeCompare(o)),n]):null,Of=e=>{const t=new Set,n=[];return e.forEach(r=>{const o=Rf(r);o&&!t.has(o)&&(t.add(o),n.push(r))}),n},If=e=>e[e.length-1]==="/"||e.endsWith(".html")?e:`${e}/`,Xl=e=>e[e.length-1]==="/"?e.slice(0,-1):e,Zl=e=>e[0]==="/"?e.slice(1):e,hs=e=>Object.prototype.toString.call(e)==="[object Object]",ct=e=>typeof e=="string";const Mf="modulepreload",Hf=function(e){return"/archer/"+e},hi={},ie=function(t,n,r){let o=Promise.resolve();if(n&&n.length>0){document.getElementsByTagName("link");const s=document.querySelector("meta[property=csp-nonce]"),i=(s==null?void 0:s.nonce)||(s==null?void 0:s.getAttribute("nonce"));o=Promise.all(n.map(l=>{if(l=Hf(l),l in hi)return;hi[l]=!0;const a=l.endsWith(".css"),f=a?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${l}"]${f}`))return;const u=document.createElement("link");if(u.rel=a?"stylesheet":Mf,a||(u.as="script"),u.crossOrigin="",u.href=l,i&&u.setAttribute("nonce",i),document.head.appendChild(u),a)return new Promise((c,h)=>{u.addEventListener("load",c),u.addEventListener("error",()=>h(new Error(`Unable to preload CSS for ${l}`)))})}))}return o.then(()=>t()).catch(s=>{const i=new Event("vite:preloadError",{cancelable:!0});if(i.payload=s,window.dispatchEvent(i),!i.defaultPrevented)throw s})},Df=JSON.parse("{}"),$f=Object.fromEntries([["/",{loader:()=>ie(()=>import("./index.html-Dp0Ea0x4.js"),[]),meta:{title:"Redirecting..."}}],["/en/",{loader:()=>ie(()=>import("./index.html-qoh0DYIF.js"),[]),meta:{title:"Home"}}],["/zh/",{loader:()=>ie(()=>import("./index.html-BVwo7izf.js"),[]),meta:{title:"首页"}}],["/en/auto/basic-framework.html",{loader:()=>ie(()=>import("./basic-framework.html-4lMCxFEF.js"),[]),meta:{title:"Basic Framework"}}],["/en/auto/basics.html",{loader:()=>ie(()=>import("./basics.html-BKPu4TvD.js"),[]),meta:{title:"Basic Knowledge"}}],["/en/guide/contact-us.html",{loader:()=>ie(()=>import("./contact-us.html-BSVlB6S4.js"),[]),meta:{title:"Contact Us"}}],["/en/guide/faq.html",{loader:()=>ie(()=>import("./faq.html-B42FzwcK.js"),[]),meta:{title:"FAQ"}}],["/en/guide/get-started.html",{loader:()=>ie(()=>import("./get-started.html-DtqSxnn5.js"),__vite__mapDeps([0,1])),meta:{title:"Get Started"}}],["/en/plugin/basic-plugin.html",{loader:()=>ie(()=>import("./basic-plugin.html-BLrIoPna.js"),[]),meta:{title:"Basics"}}],["/zh/auto/basic-framework.html",{loader:()=>ie(()=>import("./basic-framework.html-vHOCP9zm.js"),[]),meta:{title:"基础框架"}}],["/zh/auto/basics.html",{loader:()=>ie(()=>import("./basics.html-BwoslvUK.js"),[]),meta:{title:"基础知识"}}],["/zh/guide/contact-us.html",{loader:()=>ie(()=>import("./contact-us.html-CI2sA4Eg.js"),[]),meta:{title:"联系我们"}}],["/zh/guide/faq.html",{loader:()=>ie(()=>import("./faq.html-jnzDfaqT.js"),[]),meta:{title:"常见问题"}}],["/zh/guide/get-started.html",{loader:()=>ie(()=>import("./get-started.html-0XfMm4nY.js"),__vite__mapDeps([2,1])),meta:{title:"快速开始"}}],["/zh/plugin/basic-plugin.html",{loader:()=>ie(()=>import("./basic-plugin.html-D4auDWvw.js"),[]),meta:{title:"基础"}}],["/en/auto/majsoul/action/advanced-action-discard.html",{loader:()=>ie(()=>import("./advanced-action-discard.html-Crxikf7r.js"),[]),meta:{title:"Advanced"}}],["/en/auto/majsoul/action/basic-action-chii.html",{loader:()=>ie(()=>import("./basic-action-chii.html-B75b1jdu.js"),[]),meta:{title:"Chii (Eat)"}}],["/en/auto/majsoul/action/basic-action-discard.html",{loader:()=>ie(()=>import("./basic-action-discard.html-CMqM783K.js"),[]),meta:{title:"Basics"}}],["/en/auto/majsoul/action/basic-action-gang.html",{loader:()=>ie(()=>import("./basic-action-gang.html-DzjKN_ug.js"),[]),meta:{title:"Kong"}}],["/en/auto/majsoul/action/basic-action-pon.html",{loader:()=>ie(()=>import("./basic-action-pon.html-CbtBuafn.js"),[]),meta:{title:"Pon"}}],["/en/auto/majsoul/action_type/basic-action-type.html",{loader:()=>ie(()=>import("./basic-action-type.html-DWHsiqVv.js"),[]),meta:{title:"Basic"}}],["/en/auto/majsoul/actions/basic-action-majsoul.html",{loader:()=>ie(()=>import("./basic-action-majsoul.html-Bwz_hZgp.js"),[]),meta:{title:"Basic"}}],["/en/auto/majsoul/event/advanced-event-login.html",{loader:()=>ie(()=>import("./advanced-event-login.html-B-5f4SKm.js"),[]),meta:{title:"Advanced - Mahjong Event Login"}}],["/en/auto/majsoul/event/basic-event-login.html",{loader:()=>ie(()=>import("./basic-event-login.html-B-6k8ySD.js"),[]),meta:{title:"Login Event"}}],["/en/auto/majsoul/tile/basic-tile.html",{loader:()=>ie(()=>import("./basic-tile.html-B7BIErQH.js"),[]),meta:{title:"Basic"}}],["/en/auto/majsoul/lq/basic-lq.html",{loader:()=>ie(()=>import("./basic-lq.html-JxLAoeoI.js"),[]),meta:{title:"Basic"}}],["/en/auto/majsoul/gamestate/basic-gamestate.html",{loader:()=>ie(()=>import("./basic-gamestate.html-Dt70IRZ-.js"),[]),meta:{title:"Basic"}}],["/zh/auto/majsoul/action_type/basic-action-type.html",{loader:()=>ie(()=>import("./basic-action-type.html-Dm8X7xgC.js"),[]),meta:{title:"基本"}}],["/zh/auto/majsoul/action/advanced-action-discard.html",{loader:()=>ie(()=>import("./advanced-action-discard.html-DW2mWNkL.js"),[]),meta:{title:"进阶"}}],["/zh/auto/majsoul/action/basic-action-chii.html",{loader:()=>ie(()=>import("./basic-action-chii.html-BDB6bY_1.js"),[]),meta:{title:"吃"}}],["/zh/auto/majsoul/action/basic-action-discard.html",{loader:()=>ie(()=>import("./basic-action-discard.html-BiKOEIis.js"),[]),meta:{title:"基础"}}],["/zh/auto/majsoul/action/basic-action-gang.html",{loader:()=>ie(()=>import("./basic-action-gang.html-BLN6hzcY.js"),[]),meta:{title:"杠"}}],["/zh/auto/majsoul/action/basic-action-pon.html",{loader:()=>ie(()=>import("./basic-action-pon.html-DjWI6MGa.js"),[]),meta:{title:"碰"}}],["/en/auto/majsoul/mgr/mgr-lobby.html",{loader:()=>ie(()=>import("./mgr-lobby.html-CE_wmapW.js"),[]),meta:{title:"Lobby Manager"}}],["/zh/auto/majsoul/actions/basic-action-majsoul.html",{loader:()=>ie(()=>import("./basic-action-majsoul.html-Dk28ooP-.js"),[]),meta:{title:"基本"}}],["/zh/auto/majsoul/gamestate/basic-gamestate.html",{loader:()=>ie(()=>import("./basic-gamestate.html-Da8bYHET.js"),[]),meta:{title:"基本"}}],["/zh/auto/majsoul/event/advanced-event-login.html",{loader:()=>ie(()=>import("./advanced-event-login.html-Dqp_oLx5.js"),[]),meta:{title:"进阶:麻将事件登录"}}],["/zh/auto/majsoul/event/basic-event-login.html",{loader:()=>ie(()=>import("./basic-event-login.html-BQU8nSS0.js"),[]),meta:{title:"登录事件"}}],["/zh/auto/majsoul/lq/basic-lq.html",{loader:()=>ie(()=>import("./basic-lq.html-CrPmVnf-.js"),[]),meta:{title:"基本"}}],["/zh/auto/majsoul/mgr/mgr-lobby.html",{loader:()=>ie(()=>import("./mgr-lobby.html-A-kB9_Qx.js"),[]),meta:{title:"大厅管理器"}}],["/zh/auto/majsoul/tile/basic-tile.html",{loader:()=>ie(()=>import("./basic-tile.html-CRZDr7gl.js"),[]),meta:{title:"基本"}}],["/404.html",{loader:()=>ie(()=>import("./404.html-C7HeqhPM.js"),[]),meta:{title:""}}]]);/*!
+**/let No;const Qs=typeof window<"u"&&window.trustedTypes;if(Qs)try{No=Qs.createPolicy("vue",{createHTML:e=>e})}catch{}const Gl=No?e=>No.createHTML(e):e=>e,Fu="http://www.w3.org/2000/svg",Uu="http://www.w3.org/1998/Math/MathML",Ct=typeof document<"u"?document:null,Xs=Ct&&Ct.createElement("template"),Wu={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,r)=>{const o=t==="svg"?Ct.createElementNS(Fu,e):t==="mathml"?Ct.createElementNS(Uu,e):n?Ct.createElement(e,{is:n}):Ct.createElement(e);return e==="select"&&r&&r.multiple!=null&&o.setAttribute("multiple",r.multiple),o},createText:e=>Ct.createTextNode(e),createComment:e=>Ct.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>Ct.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,n,r,o,s){const i=n?n.previousSibling:t.lastChild;if(o&&(o===s||o.nextSibling))for(;t.insertBefore(o.cloneNode(!0),n),!(o===s||!(o=o.nextSibling)););else{Xs.innerHTML=Gl(r==="svg"?`${e}`:r==="mathml"?`${e}`:e);const l=Xs.content;if(r==="svg"||r==="mathml"){const a=l.firstChild;for(;a.firstChild;)l.appendChild(a.firstChild);l.removeChild(a)}t.insertBefore(l,n)}return[i?i.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}},It="transition",Mn="animation",Xn=Symbol("_vtc"),Yl={name:String,type:String,css:{type:Boolean,default:!0},duration:[String,Number,Object],enterFromClass:String,enterActiveClass:String,enterToClass:String,appearFromClass:String,appearActiveClass:String,appearToClass:String,leaveFromClass:String,leaveActiveClass:String,leaveToClass:String},qu=Oe({},bl,Yl),Ku=e=>(e.displayName="Transition",e.props=qu,e),ds=Ku((e,{slots:t})=>we(Hc,Gu(e),t)),Jt=(e,t=[])=>{ee(e)?e.forEach(n=>n(...t)):e&&e(...t)},Zs=e=>e?ee(e)?e.some(t=>t.length>1):e.length>1:!1;function Gu(e){const t={};for(const E in e)E in Yl||(t[E]=e[E]);if(e.css===!1)return t;const{name:n="v",type:r,duration:o,enterFromClass:s=`${n}-enter-from`,enterActiveClass:i=`${n}-enter-active`,enterToClass:l=`${n}-enter-to`,appearFromClass:a=s,appearActiveClass:f=i,appearToClass:u=l,leaveFromClass:c=`${n}-leave-from`,leaveActiveClass:h=`${n}-leave-active`,leaveToClass:m=`${n}-leave-to`}=e,v=Yu(o),y=v&&v[0],L=v&&v[1],{onBeforeEnter:T,onEnter:w,onEnterCancelled:g,onLeave:b,onLeaveCancelled:D,onBeforeAppear:K=T,onAppear:M=w,onAppearCancelled:S=g}=t,B=(E,H,Q)=>{Qt(E,H?u:l),Qt(E,H?f:i),Q&&Q()},C=(E,H)=>{E._isLeaving=!1,Qt(E,c),Qt(E,m),Qt(E,h),H&&H()},N=E=>(H,Q)=>{const se=E?M:w,O=()=>B(H,E,Q);Jt(se,[H,O]),ei(()=>{Qt(H,E?a:s),Mt(H,E?u:l),Zs(se)||ti(H,r,y,O)})};return Oe(t,{onBeforeEnter(E){Jt(T,[E]),Mt(E,s),Mt(E,i)},onBeforeAppear(E){Jt(K,[E]),Mt(E,a),Mt(E,f)},onEnter:N(!1),onAppear:N(!0),onLeave(E,H){E._isLeaving=!0;const Q=()=>C(E,H);Mt(E,c),Mt(E,h),Xu(),ei(()=>{E._isLeaving&&(Qt(E,c),Mt(E,m),Zs(b)||ti(E,r,L,Q))}),Jt(b,[E,Q])},onEnterCancelled(E){B(E,!1),Jt(g,[E])},onAppearCancelled(E){B(E,!0),Jt(S,[E])},onLeaveCancelled(E){C(E),Jt(D,[E])}})}function Yu(e){if(e==null)return null;if(Ee(e))return[yo(e.enter),yo(e.leave)];{const t=yo(e);return[t,t]}}function yo(e){return za(e)}function Mt(e,t){t.split(/\s+/).forEach(n=>n&&e.classList.add(n)),(e[Xn]||(e[Xn]=new Set)).add(t)}function Qt(e,t){t.split(/\s+/).forEach(r=>r&&e.classList.remove(r));const n=e[Xn];n&&(n.delete(t),n.size||(e[Xn]=void 0))}function ei(e){requestAnimationFrame(()=>{requestAnimationFrame(e)})}let Ju=0;function ti(e,t,n,r){const o=e._endId=++Ju,s=()=>{o===e._endId&&r()};if(n)return setTimeout(s,n);const{type:i,timeout:l,propCount:a}=Qu(e,t);if(!i)return r();const f=i+"end";let u=0;const c=()=>{e.removeEventListener(f,h),s()},h=m=>{m.target===e&&++u>=a&&c()};setTimeout(()=>{u(n[v]||"").split(", "),o=r(`${It}Delay`),s=r(`${It}Duration`),i=ni(o,s),l=r(`${Mn}Delay`),a=r(`${Mn}Duration`),f=ni(l,a);let u=null,c=0,h=0;t===It?i>0&&(u=It,c=i,h=s.length):t===Mn?f>0&&(u=Mn,c=f,h=a.length):(c=Math.max(i,f),u=c>0?i>f?It:Mn:null,h=u?u===It?s.length:a.length:0);const m=u===It&&/\b(transform|all)(,|$)/.test(r(`${It}Property`).toString());return{type:u,timeout:c,propCount:h,hasTransform:m}}function ni(e,t){for(;e.lengthri(n)+ri(e[r])))}function ri(e){return e==="auto"?0:Number(e.slice(0,-1).replace(",","."))*1e3}function Xu(){return document.body.offsetHeight}function Zu(e,t,n){const r=e[Xn];r&&(t=(t?[t,...r]:[...r]).join(" ")),t==null?e.removeAttribute("class"):n?e.setAttribute("class",t):e.className=t}const zr=Symbol("_vod"),Jl=Symbol("_vsh"),Br={beforeMount(e,{value:t},{transition:n}){e[zr]=e.style.display==="none"?"":e.style.display,n&&t?n.beforeEnter(e):Hn(e,t)},mounted(e,{value:t},{transition:n}){n&&t&&n.enter(e)},updated(e,{value:t,oldValue:n},{transition:r}){!t!=!n&&(r?t?(r.beforeEnter(e),Hn(e,!0),r.enter(e)):r.leave(e,()=>{Hn(e,!1)}):Hn(e,t))},beforeUnmount(e,{value:t}){Hn(e,t)}};function Hn(e,t){e.style.display=t?e[zr]:"none",e[Jl]=!t}const ef=Symbol(""),tf=/(^|;)\s*display\s*:/;function nf(e,t,n){const r=e.style,o=Te(n);let s=!1;if(n&&!o){if(t)if(Te(t))for(const i of t.split(";")){const l=i.slice(0,i.indexOf(":")).trim();n[l]==null&&Ar(r,l,"")}else for(const i in t)n[i]==null&&Ar(r,i,"");for(const i in n)i==="display"&&(s=!0),Ar(r,i,n[i])}else if(o){if(t!==n){const i=r[ef];i&&(n+=";"+i),r.cssText=n,s=tf.test(n)}}else t&&e.removeAttribute("style");zr in e&&(e[zr]=s?r.display:"",e[Jl]&&(r.display="none"))}const oi=/\s*!important$/;function Ar(e,t,n){if(ee(n))n.forEach(r=>Ar(e,t,r));else if(n==null&&(n=""),t.startsWith("--"))e.setProperty(t,n);else{const r=rf(e,t);oi.test(n)?e.setProperty(qt(r),n.replace(oi,""),"important"):e[r]=n}}const si=["Webkit","Moz","ms"],Eo={};function rf(e,t){const n=Eo[t];if(n)return n;let r=nt(t);if(r!=="filter"&&r in e)return Eo[t]=r;r=or(r);for(let o=0;oSo||(uf.then(()=>So=0),So=Date.now());function df(e,t){const n=r=>{if(!r._vts)r._vts=Date.now();else if(r._vts<=n.attached)return;ut(hf(r,n.value),t,5,[r])};return n.value=e,n.attached=ff(),n}function hf(e,t){if(ee(t)){const n=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{n.call(e),e._stopped=!0},t.map(r=>o=>!o._stopped&&r&&r(o))}else return t}const ui=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,pf=(e,t,n,r,o,s)=>{const i=o==="svg";t==="class"?Zu(e,r,i):t==="style"?nf(e,n,r):rr(t)?Ko(t)||af(e,t,n,r,s):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):mf(e,t,r,i))?(of(e,t,r),!e.tagName.includes("-")&&(t==="value"||t==="checked"||t==="selected")&&li(e,t,r,i,s,t!=="value")):(t==="true-value"?e._trueValue=r:t==="false-value"&&(e._falseValue=r),li(e,t,r,i))};function mf(e,t,n,r){if(r)return!!(t==="innerHTML"||t==="textContent"||t in e&&ui(t)&&re(n));if(t==="spellcheck"||t==="draggable"||t==="translate"||t==="form"||t==="list"&&e.tagName==="INPUT"||t==="type"&&e.tagName==="TEXTAREA")return!1;if(t==="width"||t==="height"){const o=e.tagName;if(o==="IMG"||o==="VIDEO"||o==="CANVAS"||o==="SOURCE")return!1}return ui(t)&&Te(n)?!1:!!(t in e||e._isVueCE&&(/[A-Z]/.test(t)||!Te(n)))}const gf={esc:"escape",space:" ",up:"arrow-up",left:"arrow-left",right:"arrow-right",down:"arrow-down",delete:"backspace"},vf=(e,t)=>{const n=e._withKeys||(e._withKeys={}),r=t.join(".");return n[r]||(n[r]=o=>{if(!("key"in o))return;const s=qt(o.key);if(t.some(i=>i===s||gf[i]===s))return e(o)})},_f=Oe({patchProp:pf},Wu);let wo,fi=!1;function bf(){return wo=fi?wo:mu(_f),fi=!0,wo}const yf=(...e)=>{const t=bf().createApp(...e),{mount:n}=t;return t.mount=r=>{const o=Sf(r);if(o)return n(o,!0,Ef(o))},t};function Ef(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function Sf(e){return Te(e)?document.querySelector(e):e}var dr=e=>/^[a-z][a-z0-9+.-]*:/.test(e)||e.startsWith("//"),wf=/.md((\?|#).*)?$/,xf=(e,t="/")=>dr(e)||e.startsWith("/")&&!e.startsWith(t)&&!wf.test(e),to=e=>/^(https?:)?\/\//.test(e),di=e=>{if(!e||e.endsWith("/"))return e;let t=e.replace(/(^|\/)README.md$/i,"$1index.html");return t.endsWith(".md")?t=t.substring(0,t.length-3)+".html":t.endsWith(".html")||(t=t+".html"),t.endsWith("/index.html")&&(t=t.substring(0,t.length-10)),t},Cf="http://.",Pf=(e,t)=>{if(!e.startsWith("/")&&t){const n=t.slice(0,t.lastIndexOf("/"));return di(new URL(`${n}/${e}`,Cf).pathname)}return di(e)},Lf=(e,t)=>{const n=Object.keys(e).sort((r,o)=>{const s=o.split("/").length-r.split("/").length;return s!==0?s:o.length-r.length});for(const r of n)if(t.startsWith(r))return r;return"/"},Tf=/(#|\?)/,Ql=e=>{const[t,...n]=e.split(Tf);return{pathname:t,hashAndQueries:n.join("")}},Af=["link","meta","script","style","noscript","template"],kf=["title","base"],Rf=([e,t,n])=>kf.includes(e)?e:Af.includes(e)?e==="meta"&&t.name?`${e}.${t.name}`:e==="template"&&t.id?`${e}.${t.id}`:JSON.stringify([e,Object.entries(t).map(([r,o])=>typeof o=="boolean"?o?[r,""]:null:[r,o]).filter(r=>r!=null).sort(([r],[o])=>r.localeCompare(o)),n]):null,Of=e=>{const t=new Set,n=[];return e.forEach(r=>{const o=Rf(r);o&&!t.has(o)&&(t.add(o),n.push(r))}),n},If=e=>e[e.length-1]==="/"||e.endsWith(".html")?e:`${e}/`,Xl=e=>e[e.length-1]==="/"?e.slice(0,-1):e,Zl=e=>e[0]==="/"?e.slice(1):e,hs=e=>Object.prototype.toString.call(e)==="[object Object]",ct=e=>typeof e=="string";const Mf="modulepreload",Hf=function(e){return"/archer/"+e},hi={},ie=function(t,n,r){let o=Promise.resolve();if(n&&n.length>0){document.getElementsByTagName("link");const s=document.querySelector("meta[property=csp-nonce]"),i=(s==null?void 0:s.nonce)||(s==null?void 0:s.getAttribute("nonce"));o=Promise.all(n.map(l=>{if(l=Hf(l),l in hi)return;hi[l]=!0;const a=l.endsWith(".css"),f=a?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${l}"]${f}`))return;const u=document.createElement("link");if(u.rel=a?"stylesheet":Mf,a||(u.as="script"),u.crossOrigin="",u.href=l,i&&u.setAttribute("nonce",i),document.head.appendChild(u),a)return new Promise((c,h)=>{u.addEventListener("load",c),u.addEventListener("error",()=>h(new Error(`Unable to preload CSS for ${l}`)))})}))}return o.then(()=>t()).catch(s=>{const i=new Event("vite:preloadError",{cancelable:!0});if(i.payload=s,window.dispatchEvent(i),!i.defaultPrevented)throw s})},Df=JSON.parse("{}"),$f=Object.fromEntries([["/",{loader:()=>ie(()=>import("./index.html-BVLvsL7v.js"),[]),meta:{title:"Redirecting..."}}],["/en/",{loader:()=>ie(()=>import("./index.html-BQ5wDseW.js"),[]),meta:{title:"Home"}}],["/en/auto/basic-framework.html",{loader:()=>ie(()=>import("./basic-framework.html-BmX5Xevv.js"),[]),meta:{title:"Basic Framework"}}],["/en/auto/basics.html",{loader:()=>ie(()=>import("./basics.html-_DDI8p58.js"),[]),meta:{title:"Basic Knowledge"}}],["/en/guide/contact-us.html",{loader:()=>ie(()=>import("./contact-us.html-D2PdXAH6.js"),[]),meta:{title:"Contact Us"}}],["/en/guide/faq.html",{loader:()=>ie(()=>import("./faq.html-Beo-lQ5m.js"),[]),meta:{title:"FAQ"}}],["/en/guide/get-started.html",{loader:()=>ie(()=>import("./get-started.html-DlqG4N74.js"),__vite__mapDeps([0,1])),meta:{title:"Get Started"}}],["/en/plugin/basic-plugin.html",{loader:()=>ie(()=>import("./basic-plugin.html-Cocbz7Ve.js"),[]),meta:{title:"Basics"}}],["/zh/",{loader:()=>ie(()=>import("./index.html-xVGUxIs3.js"),[]),meta:{title:"首页"}}],["/zh/auto/basic-framework.html",{loader:()=>ie(()=>import("./basic-framework.html-DMFZ0Emx.js"),[]),meta:{title:"基础框架"}}],["/zh/auto/basics.html",{loader:()=>ie(()=>import("./basics.html-C7eSyczV.js"),[]),meta:{title:"基础知识"}}],["/zh/guide/contact-us.html",{loader:()=>ie(()=>import("./contact-us.html-DE6y_Jzs.js"),[]),meta:{title:"联系我们"}}],["/zh/guide/faq.html",{loader:()=>ie(()=>import("./faq.html-D4LRbZ66.js"),[]),meta:{title:"常见问题"}}],["/zh/guide/get-started.html",{loader:()=>ie(()=>import("./get-started.html-pFpjH6c0.js"),__vite__mapDeps([2,1])),meta:{title:"快速开始"}}],["/zh/plugin/basic-plugin.html",{loader:()=>ie(()=>import("./basic-plugin.html-BrpmppN9.js"),[]),meta:{title:"基础"}}],["/en/auto/majsoul/action_type/basic-action-type.html",{loader:()=>ie(()=>import("./basic-action-type.html-BTyOi1Eb.js"),[]),meta:{title:"Basic"}}],["/en/auto/majsoul/action/advanced-action-discard.html",{loader:()=>ie(()=>import("./advanced-action-discard.html-DydQEMZr.js"),[]),meta:{title:"Advanced"}}],["/en/auto/majsoul/action/basic-action-chii.html",{loader:()=>ie(()=>import("./basic-action-chii.html-B5bo7UvW.js"),[]),meta:{title:"Chii (Eat)"}}],["/en/auto/majsoul/action/basic-action-discard.html",{loader:()=>ie(()=>import("./basic-action-discard.html-e_1fdtuV.js"),[]),meta:{title:"Basics"}}],["/en/auto/majsoul/action/basic-action-gang.html",{loader:()=>ie(()=>import("./basic-action-gang.html-BWQtNHnz.js"),[]),meta:{title:"Kong"}}],["/en/auto/majsoul/action/basic-action-pon.html",{loader:()=>ie(()=>import("./basic-action-pon.html-CN_7bev2.js"),[]),meta:{title:"Pon"}}],["/en/auto/majsoul/lq/basic-lq.html",{loader:()=>ie(()=>import("./basic-lq.html-C4TEM5Is.js"),[]),meta:{title:"Basic"}}],["/en/auto/majsoul/actions/basic-action-majsoul.html",{loader:()=>ie(()=>import("./basic-action-majsoul.html-CBl8NsaQ.js"),[]),meta:{title:"Basic"}}],["/en/auto/majsoul/gamestate/basic-gamestate.html",{loader:()=>ie(()=>import("./basic-gamestate.html-Da85epod.js"),[]),meta:{title:"Basic"}}],["/en/auto/majsoul/event/advanced-event-login.html",{loader:()=>ie(()=>import("./advanced-event-login.html-Cmd37tve.js"),[]),meta:{title:"Advanced - Mahjong Event Login"}}],["/en/auto/majsoul/event/basic-event-login.html",{loader:()=>ie(()=>import("./basic-event-login.html-K6WQz5CQ.js"),[]),meta:{title:"Login Event"}}],["/en/auto/majsoul/mgr/mgr-lobby.html",{loader:()=>ie(()=>import("./mgr-lobby.html-KfEBlUj_.js"),[]),meta:{title:"Lobby Manager"}}],["/en/auto/majsoul/tile/basic-tile.html",{loader:()=>ie(()=>import("./basic-tile.html-B6aMy-rX.js"),[]),meta:{title:"Basic"}}],["/zh/auto/majsoul/action_type/basic-action-type.html",{loader:()=>ie(()=>import("./basic-action-type.html-CxyAIjIQ.js"),[]),meta:{title:"基本"}}],["/zh/auto/majsoul/action/advanced-action-discard.html",{loader:()=>ie(()=>import("./advanced-action-discard.html-C_RBbw9g.js"),[]),meta:{title:"进阶"}}],["/zh/auto/majsoul/action/basic-action-chii.html",{loader:()=>ie(()=>import("./basic-action-chii.html-BFkjSYmn.js"),[]),meta:{title:"吃"}}],["/zh/auto/majsoul/action/basic-action-discard.html",{loader:()=>ie(()=>import("./basic-action-discard.html-DZ7Npf9C.js"),[]),meta:{title:"基础"}}],["/zh/auto/majsoul/action/basic-action-gang.html",{loader:()=>ie(()=>import("./basic-action-gang.html-C1nqrF0r.js"),[]),meta:{title:"杠"}}],["/zh/auto/majsoul/action/basic-action-pon.html",{loader:()=>ie(()=>import("./basic-action-pon.html-BqMyVnWN.js"),[]),meta:{title:"碰"}}],["/zh/auto/majsoul/actions/basic-action-majsoul.html",{loader:()=>ie(()=>import("./basic-action-majsoul.html-DbaSHwBr.js"),[]),meta:{title:"基本"}}],["/zh/auto/majsoul/event/advanced-event-login.html",{loader:()=>ie(()=>import("./advanced-event-login.html-DeERKUVx.js"),[]),meta:{title:"进阶:麻将事件登录"}}],["/zh/auto/majsoul/event/basic-event-login.html",{loader:()=>ie(()=>import("./basic-event-login.html-B2ut0HM2.js"),[]),meta:{title:"登录事件"}}],["/zh/auto/majsoul/mgr/mgr-lobby.html",{loader:()=>ie(()=>import("./mgr-lobby.html-CU3tcK-2.js"),[]),meta:{title:"大厅管理器"}}],["/zh/auto/majsoul/lq/basic-lq.html",{loader:()=>ie(()=>import("./basic-lq.html-Bnw93MwN.js"),[]),meta:{title:"基本"}}],["/zh/auto/majsoul/tile/basic-tile.html",{loader:()=>ie(()=>import("./basic-tile.html-CesE8Ar8.js"),[]),meta:{title:"基本"}}],["/zh/auto/majsoul/gamestate/basic-gamestate.html",{loader:()=>ie(()=>import("./basic-gamestate.html-BNRLl_JL.js"),[]),meta:{title:"基本"}}],["/404.html",{loader:()=>ie(()=>import("./404.html-BKPqvtPY.js"),[]),meta:{title:""}}]]);/*!
   * vue-router v4.4.3
   * (c) 2024 Eduardo San Martin Morote
   * @license MIT
diff --git a/assets/basic-action-chii.html-B75b1jdu.js b/assets/basic-action-chii.html-B5bo7UvW.js
similarity index 98%
rename from assets/basic-action-chii.html-B75b1jdu.js
rename to assets/basic-action-chii.html-B5bo7UvW.js
index 8060fca..19aa100 100644
--- a/assets/basic-action-chii.html-B75b1jdu.js
+++ b/assets/basic-action-chii.html-B5bo7UvW.js
@@ -1,4 +1,4 @@
-import{_ as e,c as a,a as i,o as s}from"./app-D5IplOGW.js";const l={};function t(c,n){return s(),a("div",null,n[0]||(n[0]=[i(`

Calling the Interface

  • Use the Chii method from the MajsoulActions package to perform a discard.

Example Code

package main
+import{_ as e,c as a,a as i,o as s}from"./app-UNZ7W0t3.js";const l={};function t(c,n){return s(),a("div",null,n[0]||(n[0]=[i(`

Calling the Interface

  • Use the Chii method from the MajsoulActions package to perform a discard.

Example Code

package main
 
 import (
   "github.com/moxcomic/Archer/actions"
diff --git a/assets/basic-action-chii.html-BDB6bY_1.js b/assets/basic-action-chii.html-BFkjSYmn.js
similarity index 98%
rename from assets/basic-action-chii.html-BDB6bY_1.js
rename to assets/basic-action-chii.html-BFkjSYmn.js
index 7b104e6..9656d53 100644
--- a/assets/basic-action-chii.html-BDB6bY_1.js
+++ b/assets/basic-action-chii.html-BFkjSYmn.js
@@ -1,4 +1,4 @@
-import{_ as a,c as s,a as i,o as e}from"./app-D5IplOGW.js";const l={};function t(c,n){return e(),s("div",null,n[0]||(n[0]=[i(`

调用接口

示例代码

package main
+import{_ as a,c as s,a as i,o as e}from"./app-UNZ7W0t3.js";const l={};function t(c,n){return e(),s("div",null,n[0]||(n[0]=[i(`

调用接口

示例代码

package main
 
 import (
   "github.com/moxcomic/Archer/actions"
diff --git a/assets/basic-action-discard.html-BiKOEIis.js b/assets/basic-action-discard.html-DZ7Npf9C.js
similarity index 98%
rename from assets/basic-action-discard.html-BiKOEIis.js
rename to assets/basic-action-discard.html-DZ7Npf9C.js
index 3c2f742..4d33888 100644
--- a/assets/basic-action-discard.html-BiKOEIis.js
+++ b/assets/basic-action-discard.html-DZ7Npf9C.js
@@ -1,4 +1,4 @@
-import{_ as a,c as s,a as e,o as i}from"./app-D5IplOGW.js";const l={};function c(r,n){return i(),s("div",null,n[0]||(n[0]=[e(`

调用接口

示例代码

package main
+import{_ as a,c as s,a as e,o as i}from"./app-UNZ7W0t3.js";const l={};function c(r,n){return i(),s("div",null,n[0]||(n[0]=[e(`

调用接口

示例代码

package main
 
 import (
   "github.com/moxcomic/Archer/actions"
diff --git a/assets/basic-action-discard.html-CMqM783K.js b/assets/basic-action-discard.html-e_1fdtuV.js
similarity index 98%
rename from assets/basic-action-discard.html-CMqM783K.js
rename to assets/basic-action-discard.html-e_1fdtuV.js
index 1178878..b07e36f 100644
--- a/assets/basic-action-discard.html-CMqM783K.js
+++ b/assets/basic-action-discard.html-e_1fdtuV.js
@@ -1,4 +1,4 @@
-import{_ as a,c as e,a as s,o as i}from"./app-D5IplOGW.js";const l={};function c(t,n){return i(),e("div",null,n[0]||(n[0]=[s(`

Calling the Interface

  • Use the Discard method from the MajsoulActions package to perform a discard.

Example Code

package main
+import{_ as a,c as e,a as s,o as i}from"./app-UNZ7W0t3.js";const l={};function c(t,n){return i(),e("div",null,n[0]||(n[0]=[s(`

Calling the Interface

  • Use the Discard method from the MajsoulActions package to perform a discard.

Example Code

package main
 
 import (
   "github.com/moxcomic/Archer/actions"
diff --git a/assets/basic-action-gang.html-DzjKN_ug.js b/assets/basic-action-gang.html-BWQtNHnz.js
similarity index 98%
rename from assets/basic-action-gang.html-DzjKN_ug.js
rename to assets/basic-action-gang.html-BWQtNHnz.js
index a9bcd05..98fbef0 100644
--- a/assets/basic-action-gang.html-DzjKN_ug.js
+++ b/assets/basic-action-gang.html-BWQtNHnz.js
@@ -1,4 +1,4 @@
-import{_ as e,c as a,a as s,o as i}from"./app-D5IplOGW.js";const l={};function t(o,n){return i(),a("div",null,n[0]||(n[0]=[s(`

Calling the Interface

  • Use the corresponding method from the MajsoulActions package to perform a Kong.

Example Code

package main
+import{_ as e,c as a,a as s,o as i}from"./app-UNZ7W0t3.js";const l={};function t(o,n){return i(),a("div",null,n[0]||(n[0]=[s(`

Calling the Interface

  • Use the corresponding method from the MajsoulActions package to perform a Kong.

Example Code

package main
 
 import (
   "github.com/moxcomic/Archer/actions"
diff --git a/assets/basic-action-gang.html-BLN6hzcY.js b/assets/basic-action-gang.html-C1nqrF0r.js
similarity index 98%
rename from assets/basic-action-gang.html-BLN6hzcY.js
rename to assets/basic-action-gang.html-C1nqrF0r.js
index 9884e35..53cbb9f 100644
--- a/assets/basic-action-gang.html-BLN6hzcY.js
+++ b/assets/basic-action-gang.html-C1nqrF0r.js
@@ -1,4 +1,4 @@
-import{_ as a,c as s,a as i,o as e}from"./app-D5IplOGW.js";const l={};function c(t,n){return e(),s("div",null,n[0]||(n[0]=[i(`

调用接口

示例代码

package main
+import{_ as a,c as s,a as i,o as e}from"./app-UNZ7W0t3.js";const l={};function c(t,n){return e(),s("div",null,n[0]||(n[0]=[i(`

调用接口

示例代码

package main
 
 import (
   "github.com/moxcomic/Archer/actions"
diff --git a/assets/basic-action-majsoul.html-Bwz_hZgp.js b/assets/basic-action-majsoul.html-CBl8NsaQ.js
similarity index 98%
rename from assets/basic-action-majsoul.html-Bwz_hZgp.js
rename to assets/basic-action-majsoul.html-CBl8NsaQ.js
index c26d948..1b89902 100644
--- a/assets/basic-action-majsoul.html-Bwz_hZgp.js
+++ b/assets/basic-action-majsoul.html-CBl8NsaQ.js
@@ -1,2 +1,2 @@
-import{_ as e,c as d,a,o as n}from"./app-D5IplOGW.js";const o={};function i(s,t){return n(),d("div",null,t[0]||(t[0]=[a(`

Package Name

  • actions

Import

  • import "github.com/moxcomic/Archer/actions"

Interface Methods

NameParametersReturn ValueNotes
NewMajsoulActionsNone*actions.MajsoulMajsoul interface instance

Instance Methods

NameParametersReturn ValueNotes
JoinroomId: int, roomType: intNoneStart matchmaking, roomType is always 0
ReJoinNoneNoneDeprecated
CancelJoinNoneNoneCancel matchmaking
ConfirmNoneNoneDeprecated
BackToHomeNoneNoneDeprecated
HuansanzhangNoneNoneSwap three tiles, only available in this mode
BabeiNoneNoneExecute Babei
Discardtile: string, tsumogiri: boolNoneDiscard a tile, tile is the tile name, tsumogiri indicates if it's the last drawn tile
Riichitile: string, tsumogiri: boolNoneDeclare Riichi, tile is the tile name, tsumogiri indicates if it's the last drawn tile
Chiitile0: string, tile1: stringNoneChii, tile0 and tile1 are the tiles to use for Chii
Pontile0: string, tile1: stringNonePon, tile0 and tile1 are the tiles to use for Pon
Daimingkantile: stringNoneDaimingkan, tile is the tile name
Kakantile: stringNoneKakan, tile is the tile name
Ankantile: stringNoneAnkan, tile is the tile name
RyukyokuNoneNoneNine Terminal Tiles
TsumoNoneNoneTsumo (Self-draw win)
RonNoneNoneRon (Win by discard)
CancelNoneNoneCancel or skip
ComeBackNoneNone"I'm back", called when a player is detected as leaving

Example Code

actions.NewMajsoulActions().Discard("1m", true)
+import{_ as e,c as d,a,o as n}from"./app-UNZ7W0t3.js";const o={};function i(s,t){return n(),d("div",null,t[0]||(t[0]=[a(`

Package Name

  • actions

Import

  • import "github.com/moxcomic/Archer/actions"

Interface Methods

NameParametersReturn ValueNotes
NewMajsoulActionsNone*actions.MajsoulMajsoul interface instance

Instance Methods

NameParametersReturn ValueNotes
JoinroomId: int, roomType: intNoneStart matchmaking, roomType is always 0
ReJoinNoneNoneDeprecated
CancelJoinNoneNoneCancel matchmaking
ConfirmNoneNoneDeprecated
BackToHomeNoneNoneDeprecated
HuansanzhangNoneNoneSwap three tiles, only available in this mode
BabeiNoneNoneExecute Babei
Discardtile: string, tsumogiri: boolNoneDiscard a tile, tile is the tile name, tsumogiri indicates if it's the last drawn tile
Riichitile: string, tsumogiri: boolNoneDeclare Riichi, tile is the tile name, tsumogiri indicates if it's the last drawn tile
Chiitile0: string, tile1: stringNoneChii, tile0 and tile1 are the tiles to use for Chii
Pontile0: string, tile1: stringNonePon, tile0 and tile1 are the tiles to use for Pon
Daimingkantile: stringNoneDaimingkan, tile is the tile name
Kakantile: stringNoneKakan, tile is the tile name
Ankantile: stringNoneAnkan, tile is the tile name
RyukyokuNoneNoneNine Terminal Tiles
TsumoNoneNoneTsumo (Self-draw win)
RonNoneNoneRon (Win by discard)
CancelNoneNoneCancel or skip
ComeBackNoneNone"I'm back", called when a player is detected as leaving

Example Code

actions.NewMajsoulActions().Discard("1m", true)
 
`,10)]))}const c=e(o,[["render",i],["__file","basic-action-majsoul.html.vue"]]),l=JSON.parse('{"path":"/en/auto/majsoul/actions/basic-action-majsoul.html","title":"Basic","lang":"en-US","frontmatter":{"title":"Basic"},"headers":[],"git":{},"filePathRelative":"en/auto/majsoul/actions/basic-action-majsoul.md"}');export{c as comp,l as data}; diff --git a/assets/basic-action-majsoul.html-Dk28ooP-.js b/assets/basic-action-majsoul.html-DbaSHwBr.js similarity index 98% rename from assets/basic-action-majsoul.html-Dk28ooP-.js rename to assets/basic-action-majsoul.html-DbaSHwBr.js index 6824302..cbbfb23 100644 --- a/assets/basic-action-majsoul.html-Dk28ooP-.js +++ b/assets/basic-action-majsoul.html-DbaSHwBr.js @@ -1,2 +1,2 @@ -import{_ as d,c as a,a as n,o as s}from"./app-D5IplOGW.js";const e={};function i(o,t){return s(),a("div",null,t[0]||(t[0]=[n(`

包名

  • actions

引用方式

  • import "github.com/moxcomic/Archer/actions"

接口方法

名称参数返回值备注
NewMajsoulActions*actions.Majsoul雀魂接口实例

实例方法

名称参数返回值备注
JoinroomId: int, roomType: int开始匹配游戏, roomType始终为0
ReJoin弃用
CancelJoin取消匹配
Confirm弃用
BackToHome弃用
Huansanzhang换三张, 仅限换三张模式
Babei拔北
Discardtile: string, tsumogiri: bool弃牌, tile为牌名, tsumogiri为是否为刚摸来的最后一张牌
Riichitile: string, tsumogiri: bool立直, tile为牌名, tsumogiri为是否为刚摸来的最后一张牌
Chiitile0: string, tile1: string吃牌, tile0, tile1为要用来吃的牌
Pontile0: string, tile1: string碰牌, tile0, tile1为要用来碰的牌
Daimingkantile: string明杠, tile为牌名
Kakantile: string加杠, tile为牌名
Ankantile: string暗杠, tile为牌名
Ryukyoku九种九牌
Tsumo自摸
Ron荣和
Cancel取消、跳过
ComeBack我回来了, 玩家被判定离开时调用

示例代码

actions.NewMajsoulActions().Discard("1m", true)
+import{_ as d,c as a,a as n,o as s}from"./app-UNZ7W0t3.js";const e={};function i(o,t){return s(),a("div",null,t[0]||(t[0]=[n(`

包名

  • actions

引用方式

  • import "github.com/moxcomic/Archer/actions"

接口方法

名称参数返回值备注
NewMajsoulActions*actions.Majsoul雀魂接口实例

实例方法

名称参数返回值备注
JoinroomId: int, roomType: int开始匹配游戏, roomType始终为0
ReJoin弃用
CancelJoin取消匹配
Confirm弃用
BackToHome弃用
Huansanzhang换三张, 仅限换三张模式
Babei拔北
Discardtile: string, tsumogiri: bool弃牌, tile为牌名, tsumogiri为是否为刚摸来的最后一张牌
Riichitile: string, tsumogiri: bool立直, tile为牌名, tsumogiri为是否为刚摸来的最后一张牌
Chiitile0: string, tile1: string吃牌, tile0, tile1为要用来吃的牌
Pontile0: string, tile1: string碰牌, tile0, tile1为要用来碰的牌
Daimingkantile: string明杠, tile为牌名
Kakantile: string加杠, tile为牌名
Ankantile: string暗杠, tile为牌名
Ryukyoku九种九牌
Tsumo自摸
Ron荣和
Cancel取消、跳过
ComeBack我回来了, 玩家被判定离开时调用

示例代码

actions.NewMajsoulActions().Discard("1m", true)
 
`,10)]))}const l=d(e,[["render",i],["__file","basic-action-majsoul.html.vue"]]),c=JSON.parse('{"path":"/zh/auto/majsoul/actions/basic-action-majsoul.html","title":"基本","lang":"zh-CN","frontmatter":{"title":"基本"},"headers":[],"git":{},"filePathRelative":"zh/auto/majsoul/actions/basic-action-majsoul.md"}');export{l as comp,c as data}; diff --git a/assets/basic-action-pon.html-DjWI6MGa.js b/assets/basic-action-pon.html-BqMyVnWN.js similarity index 98% rename from assets/basic-action-pon.html-DjWI6MGa.js rename to assets/basic-action-pon.html-BqMyVnWN.js index 444313d..e4277cd 100644 --- a/assets/basic-action-pon.html-DjWI6MGa.js +++ b/assets/basic-action-pon.html-BqMyVnWN.js @@ -1,4 +1,4 @@ -import{_ as a,c as s,a as e,o as i}from"./app-D5IplOGW.js";const l={};function t(c,n){return i(),s("div",null,n[0]||(n[0]=[e(`

调用接口

示例代码

package main
+import{_ as a,c as s,a as e,o as i}from"./app-UNZ7W0t3.js";const l={};function t(c,n){return i(),s("div",null,n[0]||(n[0]=[e(`

调用接口

示例代码

package main
 
 import (
   "github.com/moxcomic/Archer/actions"
diff --git a/assets/basic-action-pon.html-CbtBuafn.js b/assets/basic-action-pon.html-CN_7bev2.js
similarity index 98%
rename from assets/basic-action-pon.html-CbtBuafn.js
rename to assets/basic-action-pon.html-CN_7bev2.js
index fc16456..9935969 100644
--- a/assets/basic-action-pon.html-CbtBuafn.js
+++ b/assets/basic-action-pon.html-CN_7bev2.js
@@ -1,4 +1,4 @@
-import{_ as e,c as a,a as s,o as i}from"./app-D5IplOGW.js";const l={};function t(o,n){return i(),a("div",null,n[0]||(n[0]=[s(`

Calling the Interface

  • Use the Pon method from the MajsoulActions package to perform a Pon (meld).

Example Code

package main
+import{_ as e,c as a,a as s,o as i}from"./app-UNZ7W0t3.js";const l={};function t(o,n){return i(),a("div",null,n[0]||(n[0]=[s(`

Calling the Interface

  • Use the Pon method from the MajsoulActions package to perform a Pon (meld).

Example Code

package main
 
 import (
   "github.com/moxcomic/Archer/actions"
diff --git a/assets/basic-action-type.html-DWHsiqVv.js b/assets/basic-action-type.html-BTyOi1Eb.js
similarity index 95%
rename from assets/basic-action-type.html-DWHsiqVv.js
rename to assets/basic-action-type.html-BTyOi1Eb.js
index b519a97..255d49f 100644
--- a/assets/basic-action-type.html-DWHsiqVv.js
+++ b/assets/basic-action-type.html-BTyOi1Eb.js
@@ -1 +1 @@
-import{_ as d,c as e,a,o as n}from"./app-D5IplOGW.js";const i={};function r(o,t){return n(),e("div",null,t[0]||(t[0]=[a('

Action Types

Action TypeTypeValueDescription
Discard1int
Chii (Eat)2int
Pon (Meld)3int
Ankan (Concealed Kong)4int
Daimingkan (Melded Kong)5int
Kakan (Supplemental Kong)6int
Riichi (Declare Ready)7int
Tsumo (Self-Draw Win)8int
Ron (Win by Discard)9int
Nine Terminal Tiles10int
Cancel, Skip321int
',2)]))}const s=d(i,[["render",r],["__file","basic-action-type.html.vue"]]),l=JSON.parse('{"path":"/en/auto/majsoul/action_type/basic-action-type.html","title":"Basic","lang":"en-US","frontmatter":{"title":"Basic"},"headers":[],"git":{},"filePathRelative":"en/auto/majsoul/action_type/basic-action-type.md"}');export{s as comp,l as data}; +import{_ as d,c as e,a,o as n}from"./app-UNZ7W0t3.js";const i={};function r(o,t){return n(),e("div",null,t[0]||(t[0]=[a('

Action Types

Action TypeTypeValueDescription
Discard1int
Chii (Eat)2int
Pon (Meld)3int
Ankan (Concealed Kong)4int
Daimingkan (Melded Kong)5int
Kakan (Supplemental Kong)6int
Riichi (Declare Ready)7int
Tsumo (Self-Draw Win)8int
Ron (Win by Discard)9int
Nine Terminal Tiles10int
Cancel, Skip321int
',2)]))}const s=d(i,[["render",r],["__file","basic-action-type.html.vue"]]),l=JSON.parse('{"path":"/en/auto/majsoul/action_type/basic-action-type.html","title":"Basic","lang":"en-US","frontmatter":{"title":"Basic"},"headers":[],"git":{},"filePathRelative":"en/auto/majsoul/action_type/basic-action-type.md"}');export{s as comp,l as data}; diff --git a/assets/basic-action-type.html-Dm8X7xgC.js b/assets/basic-action-type.html-CxyAIjIQ.js similarity index 95% rename from assets/basic-action-type.html-Dm8X7xgC.js rename to assets/basic-action-type.html-CxyAIjIQ.js index 5239c20..3da6559 100644 --- a/assets/basic-action-type.html-Dm8X7xgC.js +++ b/assets/basic-action-type.html-CxyAIjIQ.js @@ -1 +1 @@ -import{_ as d,c as a,a as r,o as e}from"./app-D5IplOGW.js";const n={};function i(o,t){return e(),a("div",null,t[0]||(t[0]=[r('

动作类型

动作类型类型说明
出牌1int
吃牌2int
碰牌3int
暗杠4int
明杠5int
加杠6int
立直7int
自摸8int
荣和9int
九种九牌10int
取消、跳过321int
',2)]))}const h=d(n,[["render",i],["__file","basic-action-type.html.vue"]]),s=JSON.parse('{"path":"/zh/auto/majsoul/action_type/basic-action-type.html","title":"基本","lang":"zh-CN","frontmatter":{"title":"基本"},"headers":[],"git":{},"filePathRelative":"zh/auto/majsoul/action_type/basic-action-type.md"}');export{h as comp,s as data}; +import{_ as d,c as a,a as r,o as e}from"./app-UNZ7W0t3.js";const n={};function i(o,t){return e(),a("div",null,t[0]||(t[0]=[r('

动作类型

动作类型类型说明
出牌1int
吃牌2int
碰牌3int
暗杠4int
明杠5int
加杠6int
立直7int
自摸8int
荣和9int
九种九牌10int
取消、跳过321int
',2)]))}const h=d(n,[["render",i],["__file","basic-action-type.html.vue"]]),s=JSON.parse('{"path":"/zh/auto/majsoul/action_type/basic-action-type.html","title":"基本","lang":"zh-CN","frontmatter":{"title":"基本"},"headers":[],"git":{},"filePathRelative":"zh/auto/majsoul/action_type/basic-action-type.md"}');export{h as comp,s as data}; diff --git a/assets/basic-event-login.html-BQU8nSS0.js b/assets/basic-event-login.html-B2ut0HM2.js similarity index 96% rename from assets/basic-event-login.html-BQU8nSS0.js rename to assets/basic-event-login.html-B2ut0HM2.js index c962ac4..e613fe1 100644 --- a/assets/basic-event-login.html-BQU8nSS0.js +++ b/assets/basic-event-login.html-B2ut0HM2.js @@ -1,4 +1,4 @@ -import{_ as a,c as e,a as s,o as i}from"./app-D5IplOGW.js";const l={};function t(c,n){return i(),e("div",null,n[0]||(n[0]=[s(`

回调函数

登录事件的回调函数是 onLogin ,它没有任何参数和返回值, 它只会在用户登录成功时被调用。

调用时机

  • 在游戏登录成功时以及任意时刻游戏重连时调用
  • 如果是首次登入游戏, 调用时机会在未进入大厅时, 需要注意这里未进入大厅不能操作大厅的任何功能

示例代码

package main
+import{_ as a,c as e,a as s,o as i}from"./app-UNZ7W0t3.js";const l={};function t(c,n){return i(),e("div",null,n[0]||(n[0]=[s(`

回调函数

登录事件的回调函数是 onLogin ,它没有任何参数和返回值, 它只会在用户登录成功时被调用。

调用时机

  • 在游戏登录成功时以及任意时刻游戏重连时调用
  • 如果是首次登入游戏, 调用时机会在未进入大厅时, 需要注意这里未进入大厅不能操作大厅的任何功能

示例代码

package main
 
 import (
   "fmt"
diff --git a/assets/basic-event-login.html-B-6k8ySD.js b/assets/basic-event-login.html-K6WQz5CQ.js
similarity index 97%
rename from assets/basic-event-login.html-B-6k8ySD.js
rename to assets/basic-event-login.html-K6WQz5CQ.js
index 682715d..5fbfc1f 100644
--- a/assets/basic-event-login.html-B-6k8ySD.js
+++ b/assets/basic-event-login.html-K6WQz5CQ.js
@@ -1,4 +1,4 @@
-import{_ as e,c as a,a as s,o as i}from"./app-D5IplOGW.js";const l={};function t(o,n){return i(),a("div",null,n[0]||(n[0]=[s(`

Callback Function

The callback function for the login event is onLogin. It does not take any parameters or return any values and is called only when the user successfully logs in.

Invocation Timing

  • It is invoked when the game login is successful and whenever the game reconnects at any time.
  • If it is the first time logging into the game, the callback is triggered before entering the lobby. Please note that you cannot operate any lobby functions before entering the lobby.

Example Code

package main
+import{_ as e,c as a,a as s,o as i}from"./app-UNZ7W0t3.js";const l={};function t(o,n){return i(),a("div",null,n[0]||(n[0]=[s(`

Callback Function

The callback function for the login event is onLogin. It does not take any parameters or return any values and is called only when the user successfully logs in.

Invocation Timing

  • It is invoked when the game login is successful and whenever the game reconnects at any time.
  • If it is the first time logging into the game, the callback is triggered before entering the lobby. Please note that you cannot operate any lobby functions before entering the lobby.

Example Code

package main
 
 import (
   "fmt"
diff --git a/assets/basic-framework.html-4lMCxFEF.js b/assets/basic-framework.html-BmX5Xevv.js
similarity index 97%
rename from assets/basic-framework.html-4lMCxFEF.js
rename to assets/basic-framework.html-BmX5Xevv.js
index c1d950b..5aa3078 100644
--- a/assets/basic-framework.html-4lMCxFEF.js
+++ b/assets/basic-framework.html-BmX5Xevv.js
@@ -1,4 +1,4 @@
-import{_ as s,c as a,a as e,o as i}from"./app-D5IplOGW.js";const l={};function c(r,n){return i(),a("div",null,n[0]||(n[0]=[e(`

Minimal Framework

package main
+import{_ as s,c as a,a as e,o as i}from"./app-UNZ7W0t3.js";const l={};function c(r,n){return i(),a("div",null,n[0]||(n[0]=[e(`

Minimal Framework

package main
 
 import (
 	"github.com/moxcomic/lq"
diff --git a/assets/basic-framework.html-vHOCP9zm.js b/assets/basic-framework.html-DMFZ0Emx.js
similarity index 97%
rename from assets/basic-framework.html-vHOCP9zm.js
rename to assets/basic-framework.html-DMFZ0Emx.js
index c4244a9..b145eb0 100644
--- a/assets/basic-framework.html-vHOCP9zm.js
+++ b/assets/basic-framework.html-DMFZ0Emx.js
@@ -1,4 +1,4 @@
-import{_ as s,c as a,a as e,o as i}from"./app-D5IplOGW.js";const l={};function c(d,n){return i(),a("div",null,n[0]||(n[0]=[e(`

最小化框架

package main
+import{_ as s,c as a,a as e,o as i}from"./app-UNZ7W0t3.js";const l={};function c(d,n){return i(),a("div",null,n[0]||(n[0]=[e(`

最小化框架

package main
 
 import (
 	"github.com/moxcomic/lq"
diff --git a/assets/basic-gamestate.html-Da8bYHET.js b/assets/basic-gamestate.html-BNRLl_JL.js
similarity index 98%
rename from assets/basic-gamestate.html-Da8bYHET.js
rename to assets/basic-gamestate.html-BNRLl_JL.js
index 113f862..3f34a28 100644
--- a/assets/basic-gamestate.html-Da8bYHET.js
+++ b/assets/basic-gamestate.html-BNRLl_JL.js
@@ -1 +1 @@
-import{_ as d,c as a,a as r,o as e}from"./app-D5IplOGW.js";const n={};function h(o,t){return e(),a("div",null,t[0]||(t[0]=[r('

包名

  • gamestate

引用方式

  • import "github.com/moxcomic/Archer/gamestate"

常量

名称类型备注
RoundEndReasonHuleint0
RoundEndReasonRyuukyokuint1

RoundEnd

名称类型备注
Reasonint结束原因
Deltas[]int变化的玩家分数
Hules[]*Hules

Hules

名称类型备注
Seatint座位号
Tsumobool自摸
Pointint得点

接口方法

名称参数返回值备注
Inst*gamestate.GameStateGameState接口实例

实例方法

名称参数返回值备注
IsOnChiPonbool是否处于吃碰杠阶段
IsOnBabeibool是否处于拔北阶段
IsRoundWindbool是否处于本场风圈
IsSelfWindbool是否处于自风圈
IsCanWinbool是否可以和牌
IsLiqi3bool是否为三麻
Changint当前场, 0东, 1南, 2西
Benint本场
Juint局数
Oyaint庄家座位号
Score[]int玩家分数
DiscardTile[][]string四家牌河
Riichi[]bool四家立直状态
IsCanintbool是否可以进行(x)操作
IsCanOperationsbool是否可以进行操作
IsOperationuint32bool弃用
SetUserUseMousebool设置用户是否正在进行鼠标操作
HandTile[]string手牌
OperationCombinationuint32[]string获取组合操作
LeftTileCountint剩余牌数
CanIppatsu[]bool四家是否可以一发
GlobalLeftTile[]string全局牌河
RiichiAt[]int四家立直在全局牌河的位置, -1表示未立直
Levelstring等级
LevelScoreuint32等级分数
IsInSyncGamebool本局是否为掉线局
Melds[][][]string四家副露
RoundEnd*RoundEnd结束信息
',14)]))}const i=d(n,[["render",h],["__file","basic-gamestate.html.vue"]]),l=JSON.parse('{"path":"/zh/auto/majsoul/gamestate/basic-gamestate.html","title":"基本","lang":"zh-CN","frontmatter":{"title":"基本"},"headers":[],"git":{},"filePathRelative":"zh/auto/majsoul/gamestate/basic-gamestate.md"}');export{i as comp,l as data}; +import{_ as d,c as a,a as r,o as e}from"./app-UNZ7W0t3.js";const n={};function h(o,t){return e(),a("div",null,t[0]||(t[0]=[r('

包名

  • gamestate

引用方式

  • import "github.com/moxcomic/Archer/gamestate"

常量

名称类型备注
RoundEndReasonHuleint0
RoundEndReasonRyuukyokuint1

RoundEnd

名称类型备注
Reasonint结束原因
Deltas[]int变化的玩家分数
Hules[]*Hules

Hules

名称类型备注
Seatint座位号
Tsumobool自摸
Pointint得点

接口方法

名称参数返回值备注
Inst*gamestate.GameStateGameState接口实例

实例方法

名称参数返回值备注
IsOnChiPonbool是否处于吃碰杠阶段
IsOnBabeibool是否处于拔北阶段
IsRoundWindbool是否处于本场风圈
IsSelfWindbool是否处于自风圈
IsCanWinbool是否可以和牌
IsLiqi3bool是否为三麻
Changint当前场, 0东, 1南, 2西
Benint本场
Juint局数
Oyaint庄家座位号
Score[]int玩家分数
DiscardTile[][]string四家牌河
Riichi[]bool四家立直状态
IsCanintbool是否可以进行(x)操作
IsCanOperationsbool是否可以进行操作
IsOperationuint32bool弃用
SetUserUseMousebool设置用户是否正在进行鼠标操作
HandTile[]string手牌
OperationCombinationuint32[]string获取组合操作
LeftTileCountint剩余牌数
CanIppatsu[]bool四家是否可以一发
GlobalLeftTile[]string全局牌河
RiichiAt[]int四家立直在全局牌河的位置, -1表示未立直
Levelstring等级
LevelScoreuint32等级分数
IsInSyncGamebool本局是否为掉线局
Melds[][][]string四家副露
RoundEnd*RoundEnd结束信息
',14)]))}const i=d(n,[["render",h],["__file","basic-gamestate.html.vue"]]),l=JSON.parse('{"path":"/zh/auto/majsoul/gamestate/basic-gamestate.html","title":"基本","lang":"zh-CN","frontmatter":{"title":"基本"},"headers":[],"git":{},"filePathRelative":"zh/auto/majsoul/gamestate/basic-gamestate.md"}');export{i as comp,l as data}; diff --git a/assets/basic-gamestate.html-Dt70IRZ-.js b/assets/basic-gamestate.html-Da85epod.js similarity index 98% rename from assets/basic-gamestate.html-Dt70IRZ-.js rename to assets/basic-gamestate.html-Da85epod.js index 1bfbabb..82606ea 100644 --- a/assets/basic-gamestate.html-Dt70IRZ-.js +++ b/assets/basic-gamestate.html-Da85epod.js @@ -1 +1 @@ -import{_ as d,c as e,a,o as r}from"./app-D5IplOGW.js";const n={};function o(s,t){return r(),e("div",null,t[0]||(t[0]=[a('

Package Name

  • gamestate

Import

  • import "github.com/moxcomic/Archer/gamestate"

Constants

NameTypeValueNotes
RoundEndReasonHuleint0
RoundEndReasonRyuukyokuint1

RoundEnd

NameTypeNotes
ReasonintReason for round end
Deltas[]intScore changes for players
Hules[]*Hules

Hules

NameTypeNotes
SeatintSeat number
TsumoboolTsumo (self-draw win)
PointintPoints earned

Interface Methods

NameParametersReturn ValueNotes
InstNone*gamestate.GameStateGameState interface instance

Instance Methods

NameParametersReturn ValueNotes
IsOnChiPonNoneboolWhether it's in Chii, Pon, or Kan phase
IsOnBabeiNoneboolWhether it's in Babei phase
IsRoundWindNoneboolWhether it's the current round's wind
IsSelfWindNoneboolWhether it's the player's own wind
IsCanWinNoneboolWhether the player can win
IsLiqi3NoneboolWhether it is a three-player mahjong
ChangNoneintCurrent round: 0=East, 1=South, 2=West
BenNoneintCurrent round number
JuNoneintCurrent hand number
OyaNoneintSeat number of the dealer
ScoreNone[]intPlayer scores
DiscardTileNone[][]stringTiles in each player's discard pile
RiichiNone[]boolRiichi status of each player
IsCanintboolWhether action (x) can be performed
IsCanOperationsNoneboolWhether any actions can be performed
IsOperationuint32boolDeprecated
SetUserUseMouseboolNoneSet whether the user is using the mouse
HandTileNone[]stringPlayer's hand tiles
OperationCombinationuint32[]stringGet combination for operation
LeftTileCountNoneintRemaining tile count
CanIppatsuNone[]boolWhether each player can perform Ippatsu
GlobalLeftTileNone[]stringGlobal discard pool
RiichiAtNone[]intPosition of Riichi in global discard pool, -1 if not declared
LevelNonestringPlayer level
LevelScoreNoneuint32Player level score
IsInSyncGameNoneboolWhether this game is a reconnection game
MeldsNone[][][]stringMelds of each player
RoundEndNone*RoundEndInformation on round end
',14)]))}const i=d(n,[["render",o],["__file","basic-gamestate.html.vue"]]),l=JSON.parse('{"path":"/en/auto/majsoul/gamestate/basic-gamestate.html","title":"Basic","lang":"en-US","frontmatter":{"title":"Basic"},"headers":[],"git":{},"filePathRelative":"en/auto/majsoul/gamestate/basic-gamestate.md"}');export{i as comp,l as data}; +import{_ as d,c as e,a,o as r}from"./app-UNZ7W0t3.js";const n={};function o(s,t){return r(),e("div",null,t[0]||(t[0]=[a('

Package Name

  • gamestate

Import

  • import "github.com/moxcomic/Archer/gamestate"

Constants

NameTypeValueNotes
RoundEndReasonHuleint0
RoundEndReasonRyuukyokuint1

RoundEnd

NameTypeNotes
ReasonintReason for round end
Deltas[]intScore changes for players
Hules[]*Hules

Hules

NameTypeNotes
SeatintSeat number
TsumoboolTsumo (self-draw win)
PointintPoints earned

Interface Methods

NameParametersReturn ValueNotes
InstNone*gamestate.GameStateGameState interface instance

Instance Methods

NameParametersReturn ValueNotes
IsOnChiPonNoneboolWhether it's in Chii, Pon, or Kan phase
IsOnBabeiNoneboolWhether it's in Babei phase
IsRoundWindNoneboolWhether it's the current round's wind
IsSelfWindNoneboolWhether it's the player's own wind
IsCanWinNoneboolWhether the player can win
IsLiqi3NoneboolWhether it is a three-player mahjong
ChangNoneintCurrent round: 0=East, 1=South, 2=West
BenNoneintCurrent round number
JuNoneintCurrent hand number
OyaNoneintSeat number of the dealer
ScoreNone[]intPlayer scores
DiscardTileNone[][]stringTiles in each player's discard pile
RiichiNone[]boolRiichi status of each player
IsCanintboolWhether action (x) can be performed
IsCanOperationsNoneboolWhether any actions can be performed
IsOperationuint32boolDeprecated
SetUserUseMouseboolNoneSet whether the user is using the mouse
HandTileNone[]stringPlayer's hand tiles
OperationCombinationuint32[]stringGet combination for operation
LeftTileCountNoneintRemaining tile count
CanIppatsuNone[]boolWhether each player can perform Ippatsu
GlobalLeftTileNone[]stringGlobal discard pool
RiichiAtNone[]intPosition of Riichi in global discard pool, -1 if not declared
LevelNonestringPlayer level
LevelScoreNoneuint32Player level score
IsInSyncGameNoneboolWhether this game is a reconnection game
MeldsNone[][][]stringMelds of each player
RoundEndNone*RoundEndInformation on round end
',14)]))}const i=d(n,[["render",o],["__file","basic-gamestate.html.vue"]]),l=JSON.parse('{"path":"/en/auto/majsoul/gamestate/basic-gamestate.html","title":"Basic","lang":"en-US","frontmatter":{"title":"Basic"},"headers":[],"git":{},"filePathRelative":"en/auto/majsoul/gamestate/basic-gamestate.md"}');export{i as comp,l as data}; diff --git a/assets/basic-lq.html-CrPmVnf-.js b/assets/basic-lq.html-Bnw93MwN.js similarity index 96% rename from assets/basic-lq.html-CrPmVnf-.js rename to assets/basic-lq.html-Bnw93MwN.js index 155f651..d0775f6 100644 --- a/assets/basic-lq.html-CrPmVnf-.js +++ b/assets/basic-lq.html-Bnw93MwN.js @@ -1 +1 @@ -import{_ as d,c as a,a as e,o as r}from"./app-D5IplOGW.js";const l={};function o(h,t){return r(),a("div",null,t[0]||(t[0]=[e('

包名

  • lq

引用方式

  • import "github.com/moxcomic/lq"

NotifyAIResult

字段名类型备注
Result[]*lq.AIResult
Shantenint向听
Rrrrint弃用
Mmmmint弃用

AIResult

字段名类型备注
Typeuint32操作类型
Tilestring牌名
Moqiebool是否为最后摸来的牌
Combination[]string吃、碰、杠的牌组合
Scorefloat64推荐值
Chongfloat64危险值
',8)]))}const s=d(l,[["render",o],["__file","basic-lq.html.vue"]]),n=JSON.parse('{"path":"/zh/auto/majsoul/lq/basic-lq.html","title":"基本","lang":"zh-CN","frontmatter":{"title":"基本"},"headers":[],"git":{},"filePathRelative":"zh/auto/majsoul/lq/basic-lq.md"}');export{s as comp,n as data}; +import{_ as d,c as a,a as e,o as r}from"./app-UNZ7W0t3.js";const l={};function o(h,t){return r(),a("div",null,t[0]||(t[0]=[e('

包名

  • lq

引用方式

  • import "github.com/moxcomic/lq"

NotifyAIResult

字段名类型备注
Result[]*lq.AIResult
Shantenint向听
Rrrrint弃用
Mmmmint弃用

AIResult

字段名类型备注
Typeuint32操作类型
Tilestring牌名
Moqiebool是否为最后摸来的牌
Combination[]string吃、碰、杠的牌组合
Scorefloat64推荐值
Chongfloat64危险值
',8)]))}const s=d(l,[["render",o],["__file","basic-lq.html.vue"]]),n=JSON.parse('{"path":"/zh/auto/majsoul/lq/basic-lq.html","title":"基本","lang":"zh-CN","frontmatter":{"title":"基本"},"headers":[],"git":{},"filePathRelative":"zh/auto/majsoul/lq/basic-lq.md"}');export{s as comp,n as data}; diff --git a/assets/basic-lq.html-JxLAoeoI.js b/assets/basic-lq.html-C4TEM5Is.js similarity index 96% rename from assets/basic-lq.html-JxLAoeoI.js rename to assets/basic-lq.html-C4TEM5Is.js index 66728ca..6d878f5 100644 --- a/assets/basic-lq.html-JxLAoeoI.js +++ b/assets/basic-lq.html-C4TEM5Is.js @@ -1 +1 @@ -import{_ as e,c as a,a as d,o as r}from"./app-D5IplOGW.js";const i={};function o(n,t){return r(),a("div",null,t[0]||(t[0]=[d('

Package Name

  • lq

Import

  • import "github.com/moxcomic/lq"

NotifyAIResult

Field NameTypeNotes
Result[]*lq.AIResult
ShantenintShanten (number of tiles needed to tenpai)
RrrrintDeprecated
MmmmintDeprecated

AIResult

Field NameTypeNotes
Typeuint32Operation type
TilestringTile name
MoqieboolWhether it is the last drawn tile
Combination[]stringTile combination for Chii, Pon, or Kan
Scorefloat64Recommendation value
Chongfloat64Risk value
',8)]))}const s=e(i,[["render",o],["__file","basic-lq.html.vue"]]),h=JSON.parse('{"path":"/en/auto/majsoul/lq/basic-lq.html","title":"Basic","lang":"en-US","frontmatter":{"title":"Basic"},"headers":[],"git":{},"filePathRelative":"en/auto/majsoul/lq/basic-lq.md"}');export{s as comp,h as data}; +import{_ as e,c as a,a as d,o as r}from"./app-UNZ7W0t3.js";const i={};function o(n,t){return r(),a("div",null,t[0]||(t[0]=[d('

Package Name

  • lq

Import

  • import "github.com/moxcomic/lq"

NotifyAIResult

Field NameTypeNotes
Result[]*lq.AIResult
ShantenintShanten (number of tiles needed to tenpai)
RrrrintDeprecated
MmmmintDeprecated

AIResult

Field NameTypeNotes
Typeuint32Operation type
TilestringTile name
MoqieboolWhether it is the last drawn tile
Combination[]stringTile combination for Chii, Pon, or Kan
Scorefloat64Recommendation value
Chongfloat64Risk value
',8)]))}const s=e(i,[["render",o],["__file","basic-lq.html.vue"]]),h=JSON.parse('{"path":"/en/auto/majsoul/lq/basic-lq.html","title":"Basic","lang":"en-US","frontmatter":{"title":"Basic"},"headers":[],"git":{},"filePathRelative":"en/auto/majsoul/lq/basic-lq.md"}');export{s as comp,h as data}; diff --git a/assets/basic-plugin.html-D4auDWvw.js b/assets/basic-plugin.html-BrpmppN9.js similarity index 85% rename from assets/basic-plugin.html-D4auDWvw.js rename to assets/basic-plugin.html-BrpmppN9.js index 237e3c0..cbf75b2 100644 --- a/assets/basic-plugin.html-D4auDWvw.js +++ b/assets/basic-plugin.html-BrpmppN9.js @@ -1 +1 @@ -import{_ as e,c as l,b as a,o as n}from"./app-D5IplOGW.js";const i={};function s(c,t){return n(),l("div",null,t[0]||(t[0]=[a("p",null,"正在编写...",-1)]))}const o=e(i,[["render",s],["__file","basic-plugin.html.vue"]]),p=JSON.parse('{"path":"/zh/plugin/basic-plugin.html","title":"基础","lang":"zh-CN","frontmatter":{"title":"基础"},"headers":[],"git":{},"filePathRelative":"zh/plugin/basic-plugin.md"}');export{o as comp,p as data}; +import{_ as e,c as l,b as a,o as n}from"./app-UNZ7W0t3.js";const i={};function s(c,t){return n(),l("div",null,t[0]||(t[0]=[a("p",null,"正在编写...",-1)]))}const o=e(i,[["render",s],["__file","basic-plugin.html.vue"]]),p=JSON.parse('{"path":"/zh/plugin/basic-plugin.html","title":"基础","lang":"zh-CN","frontmatter":{"title":"基础"},"headers":[],"git":{},"filePathRelative":"zh/plugin/basic-plugin.md"}');export{o as comp,p as data}; diff --git a/assets/basic-plugin.html-BLrIoPna.js b/assets/basic-plugin.html-Cocbz7Ve.js similarity index 85% rename from assets/basic-plugin.html-BLrIoPna.js rename to assets/basic-plugin.html-Cocbz7Ve.js index 76c9d91..907bb92 100644 --- a/assets/basic-plugin.html-BLrIoPna.js +++ b/assets/basic-plugin.html-Cocbz7Ve.js @@ -1 +1 @@ -import{_ as t,c as n,b as s,o as a}from"./app-D5IplOGW.js";const i={};function l(c,e){return a(),n("div",null,e[0]||(e[0]=[s("p",null,"In progress...",-1)]))}const o=t(i,[["render",l],["__file","basic-plugin.html.vue"]]),p=JSON.parse('{"path":"/en/plugin/basic-plugin.html","title":"Basics","lang":"en-US","frontmatter":{"title":"Basics"},"headers":[],"git":{},"filePathRelative":"en/plugin/basic-plugin.md"}');export{o as comp,p as data}; +import{_ as t,c as n,b as s,o as a}from"./app-UNZ7W0t3.js";const i={};function l(c,e){return a(),n("div",null,e[0]||(e[0]=[s("p",null,"In progress...",-1)]))}const o=t(i,[["render",l],["__file","basic-plugin.html.vue"]]),p=JSON.parse('{"path":"/en/plugin/basic-plugin.html","title":"Basics","lang":"en-US","frontmatter":{"title":"Basics"},"headers":[],"git":{},"filePathRelative":"en/plugin/basic-plugin.md"}');export{o as comp,p as data}; diff --git a/assets/basic-tile.html-B7BIErQH.js b/assets/basic-tile.html-B6aMy-rX.js similarity index 97% rename from assets/basic-tile.html-B7BIErQH.js rename to assets/basic-tile.html-B6aMy-rX.js index e08702b..b174ab4 100644 --- a/assets/basic-tile.html-B7BIErQH.js +++ b/assets/basic-tile.html-B6aMy-rX.js @@ -1 +1 @@ -import{_ as l,c as e,a as n,o as s}from"./app-D5IplOGW.js";const t={};function a(o,i){return s(),e("div",null,i[0]||(i[0]=[n('

Man Tiles (Manzu)

  • The m letter is used to represent Man tiles.
  • Man tiles have numbers ranging from 1 to 9.
  • The correspondence between the numbers and the letter is as follows:
    • 1 Man (1m)
    • 2 Man (2m)
    • 3 Man (3m)
    • 4 Man (4m)
    • 5 Man (5m)
    • 6 Man (6m)
    • 7 Man (7m)
    • 8 Man (8m)
    • 9 Man (9m)
    • Red 5 Man (0m)

Pin Tiles (Pinzu)

  • The p letter is used to represent Pin tiles.
  • Pin tiles have numbers ranging from 1 to 9.
  • The correspondence between the numbers and the letter is as follows:
    • 1 Pin (1p)
    • 2 Pin (2p)
    • 3 Pin (3p)
    • 4 Pin (4p)
    • 5 Pin (5p)
    • 6 Pin (6p)
    • 7 Pin (7p)
    • 8 Pin (8p)
    • 9 Pin (9p)
    • Red 5 Pin (0p)

Sou Tiles (Souzu)

  • The s letter is used to represent Sou tiles.
  • Sou tiles have numbers ranging from 1 to 9.
  • The correspondence between the numbers and the letter is as follows:
    • 1 Sou (1s)
    • 2 Sou (2s)
    • 3 Sou (3s)
    • 4 Sou (4s)
    • 5 Sou (5s)
    • 6 Sou (6s)
    • 7 Sou (7s)
    • 8 Sou (8s)
    • 9 Sou (9s)
    • Red 5 Sou (0s)

Honor Tiles

  • The z letter is used to represent honor tiles.
  • Honor tiles have numbers ranging from 1 to 7.
  • The correspondence between the numbers and the letter is as follows:
    • East (1z)
    • South (2z)
    • West (3z)
    • North (4z)
    • White (5z)
    • Green (6z)
    • Red (Center) (7z)
',8)]))}const u=l(t,[["render",a],["__file","basic-tile.html.vue"]]),h=JSON.parse('{"path":"/en/auto/majsoul/tile/basic-tile.html","title":"Basic","lang":"en-US","frontmatter":{"title":"Basic"},"headers":[],"git":{},"filePathRelative":"en/auto/majsoul/tile/basic-tile.md"}');export{u as comp,h as data}; +import{_ as l,c as e,a as n,o as s}from"./app-UNZ7W0t3.js";const t={};function a(o,i){return s(),e("div",null,i[0]||(i[0]=[n('

Man Tiles (Manzu)

  • The m letter is used to represent Man tiles.
  • Man tiles have numbers ranging from 1 to 9.
  • The correspondence between the numbers and the letter is as follows:
    • 1 Man (1m)
    • 2 Man (2m)
    • 3 Man (3m)
    • 4 Man (4m)
    • 5 Man (5m)
    • 6 Man (6m)
    • 7 Man (7m)
    • 8 Man (8m)
    • 9 Man (9m)
    • Red 5 Man (0m)

Pin Tiles (Pinzu)

  • The p letter is used to represent Pin tiles.
  • Pin tiles have numbers ranging from 1 to 9.
  • The correspondence between the numbers and the letter is as follows:
    • 1 Pin (1p)
    • 2 Pin (2p)
    • 3 Pin (3p)
    • 4 Pin (4p)
    • 5 Pin (5p)
    • 6 Pin (6p)
    • 7 Pin (7p)
    • 8 Pin (8p)
    • 9 Pin (9p)
    • Red 5 Pin (0p)

Sou Tiles (Souzu)

  • The s letter is used to represent Sou tiles.
  • Sou tiles have numbers ranging from 1 to 9.
  • The correspondence between the numbers and the letter is as follows:
    • 1 Sou (1s)
    • 2 Sou (2s)
    • 3 Sou (3s)
    • 4 Sou (4s)
    • 5 Sou (5s)
    • 6 Sou (6s)
    • 7 Sou (7s)
    • 8 Sou (8s)
    • 9 Sou (9s)
    • Red 5 Sou (0s)

Honor Tiles

  • The z letter is used to represent honor tiles.
  • Honor tiles have numbers ranging from 1 to 7.
  • The correspondence between the numbers and the letter is as follows:
    • East (1z)
    • South (2z)
    • West (3z)
    • North (4z)
    • White (5z)
    • Green (6z)
    • Red (Center) (7z)
',8)]))}const u=l(t,[["render",a],["__file","basic-tile.html.vue"]]),h=JSON.parse('{"path":"/en/auto/majsoul/tile/basic-tile.html","title":"Basic","lang":"en-US","frontmatter":{"title":"Basic"},"headers":[],"git":{},"filePathRelative":"en/auto/majsoul/tile/basic-tile.md"}');export{u as comp,h as data}; diff --git a/assets/basic-tile.html-CRZDr7gl.js b/assets/basic-tile.html-CesE8Ar8.js similarity index 97% rename from assets/basic-tile.html-CRZDr7gl.js rename to assets/basic-tile.html-CesE8Ar8.js index ee52116..2ae54e8 100644 --- a/assets/basic-tile.html-CRZDr7gl.js +++ b/assets/basic-tile.html-CesE8Ar8.js @@ -1 +1 @@ -import{_ as i,c as a,a as e,o as s}from"./app-D5IplOGW.js";const t={};function o(n,l){return s(),a("div",null,l[0]||(l[0]=[e('

萬子 (Man)

  • 使用 m 字母表示萬子牌。
  • 萬子牌的數字為 1 到 9。
  • 萬子牌的數字與字母的對應如下:
    • 一萬 (1m)
    • 二萬 (2m)
    • 三萬 (3m)
    • 四萬 (4m)
    • 五萬 (5m)
    • 六萬 (6m)
    • 七萬 (7m)
    • 八萬 (8m)
    • 九萬 (9m)
    • 赤五萬 (0m)

筒子 (Pin)

  • 使用 p 字母表示筒子牌。
  • 筒子牌的數字為 1 到 9。
  • 筒子牌的數字與字母的對應如下:
    • 一筒 (1p)
    • 二筒 (2p)
    • 三筒 (3p)
    • 四筒 (4p)
    • 五筒 (5p)
    • 六筒 (6p)
    • 七筒 (7p)
    • 八筒 (8p)
    • 九筒 (9p)
    • 赤五筒 (0p)

索子 (Sou)

  • 使用 s 字母表示索子牌。
  • 索子牌的數字為 1 到 9。
  • 索子牌的數字與字母的對應如下:
    • 一索 (1s)
    • 二索 (2s)
    • 三索 (3s)
    • 四索 (4s)
    • 五索 (5s)
    • 六索 (6s)
    • 七索 (7s)
    • 八索 (8s)
    • 九索 (9s)
    • 赤五索 (0s)

字牌 (Honor)

  • 使用 z 字母表示索子牌。
  • 字牌的數字為 1 到 7。
  • 字牌的數字與字母的對應如下:
    • 東 (East) (1z)
    • 南 (South) (2z)
    • 西 (West) (3z)
    • 北 (North) (4z)
    • 白 (White) (5z)
    • 發 (Green) (6z)
    • 中 (Center) (7z)
',8)]))}const c=i(t,[["render",o],["__file","basic-tile.html.vue"]]),h=JSON.parse('{"path":"/zh/auto/majsoul/tile/basic-tile.html","title":"基本","lang":"zh-CN","frontmatter":{"title":"基本"},"headers":[],"git":{},"filePathRelative":"zh/auto/majsoul/tile/basic-tile.md"}');export{c as comp,h as data}; +import{_ as i,c as a,a as e,o as s}from"./app-UNZ7W0t3.js";const t={};function o(n,l){return s(),a("div",null,l[0]||(l[0]=[e('

萬子 (Man)

  • 使用 m 字母表示萬子牌。
  • 萬子牌的數字為 1 到 9。
  • 萬子牌的數字與字母的對應如下:
    • 一萬 (1m)
    • 二萬 (2m)
    • 三萬 (3m)
    • 四萬 (4m)
    • 五萬 (5m)
    • 六萬 (6m)
    • 七萬 (7m)
    • 八萬 (8m)
    • 九萬 (9m)
    • 赤五萬 (0m)

筒子 (Pin)

  • 使用 p 字母表示筒子牌。
  • 筒子牌的數字為 1 到 9。
  • 筒子牌的數字與字母的對應如下:
    • 一筒 (1p)
    • 二筒 (2p)
    • 三筒 (3p)
    • 四筒 (4p)
    • 五筒 (5p)
    • 六筒 (6p)
    • 七筒 (7p)
    • 八筒 (8p)
    • 九筒 (9p)
    • 赤五筒 (0p)

索子 (Sou)

  • 使用 s 字母表示索子牌。
  • 索子牌的數字為 1 到 9。
  • 索子牌的數字與字母的對應如下:
    • 一索 (1s)
    • 二索 (2s)
    • 三索 (3s)
    • 四索 (4s)
    • 五索 (5s)
    • 六索 (6s)
    • 七索 (7s)
    • 八索 (8s)
    • 九索 (9s)
    • 赤五索 (0s)

字牌 (Honor)

  • 使用 z 字母表示索子牌。
  • 字牌的數字為 1 到 7。
  • 字牌的數字與字母的對應如下:
    • 東 (East) (1z)
    • 南 (South) (2z)
    • 西 (West) (3z)
    • 北 (North) (4z)
    • 白 (White) (5z)
    • 發 (Green) (6z)
    • 中 (Center) (7z)
',8)]))}const c=i(t,[["render",o],["__file","basic-tile.html.vue"]]),h=JSON.parse('{"path":"/zh/auto/majsoul/tile/basic-tile.html","title":"基本","lang":"zh-CN","frontmatter":{"title":"基本"},"headers":[],"git":{},"filePathRelative":"zh/auto/majsoul/tile/basic-tile.md"}');export{c as comp,h as data}; diff --git a/assets/basics.html-BwoslvUK.js b/assets/basics.html-C7eSyczV.js similarity index 94% rename from assets/basics.html-BwoslvUK.js rename to assets/basics.html-C7eSyczV.js index f8485d6..69d2cde 100644 --- a/assets/basics.html-BwoslvUK.js +++ b/assets/basics.html-C7eSyczV.js @@ -1 +1 @@ -import{_ as e,c as l,a as i,o as s}from"./app-D5IplOGW.js";const t={};function n(h,a){return s(),l("div",null,a[0]||(a[0]=[i('

开发语言

  • Golang

语言版本

  • Go 1.20+ < 1.23

开发环境

  • 无需安装任何环境

开发工具

以下任选其一:

  • Visual Studio Code
  • Intellij IDEA
  • Sublime Text
  • Notepad++

文件路径

  • Archer目录/scripts/auto.go
',11)]))}const c=e(t,[["render",n],["__file","basics.html.vue"]]),o=JSON.parse('{"path":"/zh/auto/basics.html","title":"基础知识","lang":"zh-CN","frontmatter":{"title":"基础知识"},"headers":[],"git":{},"filePathRelative":"zh/auto/basics.md"}');export{c as comp,o as data}; +import{_ as e,c as l,a as i,o as s}from"./app-UNZ7W0t3.js";const t={};function n(h,a){return s(),l("div",null,a[0]||(a[0]=[i('

开发语言

  • Golang

语言版本

  • Go 1.20+ < 1.23

开发环境

  • 无需安装任何环境

开发工具

以下任选其一:

  • Visual Studio Code
  • Intellij IDEA
  • Sublime Text
  • Notepad++

文件路径

  • Archer目录/scripts/auto.go
',11)]))}const c=e(t,[["render",n],["__file","basics.html.vue"]]),o=JSON.parse('{"path":"/zh/auto/basics.html","title":"基础知识","lang":"zh-CN","frontmatter":{"title":"基础知识"},"headers":[],"git":{},"filePathRelative":"zh/auto/basics.md"}');export{c as comp,o as data}; diff --git a/assets/basics.html-BKPu4TvD.js b/assets/basics.html-_DDI8p58.js similarity index 95% rename from assets/basics.html-BKPu4TvD.js rename to assets/basics.html-_DDI8p58.js index 2264b96..959c973 100644 --- a/assets/basics.html-BKPu4TvD.js +++ b/assets/basics.html-_DDI8p58.js @@ -1 +1 @@ -import{_ as a,c as n,a as l,o as i}from"./app-D5IplOGW.js";const o={};function t(s,e){return i(),n("div",null,e[0]||(e[0]=[l('

Programming Language

  • Golang

Language Version

  • Go 1.20+ < 1.23

Development Environment

  • No need to install any additional environment

Development Tools

Choose one of the following:

  • Visual Studio Code
  • IntelliJ IDEA
  • Sublime Text
  • Notepad++

File Path

  • Archer Directory: /scripts/auto.go
',11)]))}const d=a(o,[["render",t],["__file","basics.html.vue"]]),h=JSON.parse('{"path":"/en/auto/basics.html","title":"Basic Knowledge","lang":"en-US","frontmatter":{"title":"Basic Knowledge"},"headers":[],"git":{},"filePathRelative":"en/auto/basics.md"}');export{d as comp,h as data}; +import{_ as a,c as n,a as l,o as i}from"./app-UNZ7W0t3.js";const o={};function t(s,e){return i(),n("div",null,e[0]||(e[0]=[l('

Programming Language

  • Golang

Language Version

  • Go 1.20+ < 1.23

Development Environment

  • No need to install any additional environment

Development Tools

Choose one of the following:

  • Visual Studio Code
  • IntelliJ IDEA
  • Sublime Text
  • Notepad++

File Path

  • Archer Directory: /scripts/auto.go
',11)]))}const d=a(o,[["render",t],["__file","basics.html.vue"]]),h=JSON.parse('{"path":"/en/auto/basics.html","title":"Basic Knowledge","lang":"en-US","frontmatter":{"title":"Basic Knowledge"},"headers":[],"git":{},"filePathRelative":"en/auto/basics.md"}');export{d as comp,h as data}; diff --git a/assets/contact-us.html-BSVlB6S4.js b/assets/contact-us.html-D2PdXAH6.js similarity index 95% rename from assets/contact-us.html-BSVlB6S4.js rename to assets/contact-us.html-D2PdXAH6.js index 247b8e9..e7f917c 100644 --- a/assets/contact-us.html-BSVlB6S4.js +++ b/assets/contact-us.html-D2PdXAH6.js @@ -1 +1 @@ -import{_ as t,c as r,a,o}from"./app-D5IplOGW.js";const s={};function n(p,e){return o(),r("div",null,e[0]||(e[0]=[a('

QQGroup

Twitter

Telegram

WhatsApp

Discord

',5)]))}const l=t(s,[["render",n],["__file","contact-us.html.vue"]]),c=JSON.parse('{"path":"/en/guide/contact-us.html","title":"Contact Us","lang":"en-US","frontmatter":{"title":"Contact Us"},"headers":[],"git":{},"filePathRelative":"en/guide/contact-us.md"}');export{l as comp,c as data}; +import{_ as t,c as r,a,o}from"./app-UNZ7W0t3.js";const s={};function n(p,e){return o(),r("div",null,e[0]||(e[0]=[a('

QQGroup

Twitter

Telegram

WhatsApp

Discord

',5)]))}const l=t(s,[["render",n],["__file","contact-us.html.vue"]]),c=JSON.parse('{"path":"/en/guide/contact-us.html","title":"Contact Us","lang":"en-US","frontmatter":{"title":"Contact Us"},"headers":[],"git":{},"filePathRelative":"en/guide/contact-us.md"}');export{l as comp,c as data}; diff --git a/assets/contact-us.html-CI2sA4Eg.js b/assets/contact-us.html-DE6y_Jzs.js similarity index 95% rename from assets/contact-us.html-CI2sA4Eg.js rename to assets/contact-us.html-DE6y_Jzs.js index d06d7be..7276446 100644 --- a/assets/contact-us.html-CI2sA4Eg.js +++ b/assets/contact-us.html-DE6y_Jzs.js @@ -1 +1 @@ -import{_ as t,c as r,a,o as s}from"./app-D5IplOGW.js";const o={};function p(l,e){return s(),r("div",null,e[0]||(e[0]=[a('

QQGroup

Twitter

Telegram

WhatsApp

Discord

',5)]))}const n=t(o,[["render",p],["__file","contact-us.html.vue"]]),h=JSON.parse('{"path":"/zh/guide/contact-us.html","title":"联系我们","lang":"zh-CN","frontmatter":{"title":"联系我们"},"headers":[],"git":{},"filePathRelative":"zh/guide/contact-us.md"}');export{n as comp,h as data}; +import{_ as t,c as r,a,o as s}from"./app-UNZ7W0t3.js";const o={};function p(l,e){return s(),r("div",null,e[0]||(e[0]=[a('

QQGroup

Twitter

Telegram

WhatsApp

Discord

',5)]))}const n=t(o,[["render",p],["__file","contact-us.html.vue"]]),h=JSON.parse('{"path":"/zh/guide/contact-us.html","title":"联系我们","lang":"zh-CN","frontmatter":{"title":"联系我们"},"headers":[],"git":{},"filePathRelative":"zh/guide/contact-us.md"}');export{n as comp,h as data}; diff --git a/assets/faq.html-B42FzwcK.js b/assets/faq.html-Beo-lQ5m.js similarity index 93% rename from assets/faq.html-B42FzwcK.js rename to assets/faq.html-Beo-lQ5m.js index 35269cc..0d53445 100644 --- a/assets/faq.html-B42FzwcK.js +++ b/assets/faq.html-Beo-lQ5m.js @@ -1 +1 @@ -import{_ as l,c as s,b as e,d as n,o as a}from"./app-D5IplOGW.js";const o={};function i(r,t){return a(),s("div",null,t[0]||(t[0]=[e("h1",{id:"frequently-asked-questions",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#frequently-asked-questions"},[e("span",null,"Frequently Asked Questions")])],-1),e("ul",null,[e("li",null,[n("How do I get a redemption code? "),e("ul",null,[e("li",null,"Contact us by joining our channel to make a purchase.")])]),e("li",null,[n("Why does the remaining sessions show as 0 after starting? "),e("ul",null,[e("li",null,"The start process did not include login. After clicking the 🚀 button to log in, you will be able to see the remaining sessions.")])])],-1)]))}const d=l(o,[["render",i],["__file","faq.html.vue"]]),c=JSON.parse('{"path":"/en/guide/faq.html","title":"FAQ","lang":"en-US","frontmatter":{"title":"FAQ"},"headers":[],"git":{},"filePathRelative":"en/guide/faq.md"}');export{d as comp,c as data}; +import{_ as l,c as s,b as e,d as n,o as a}from"./app-UNZ7W0t3.js";const o={};function i(r,t){return a(),s("div",null,t[0]||(t[0]=[e("h1",{id:"frequently-asked-questions",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#frequently-asked-questions"},[e("span",null,"Frequently Asked Questions")])],-1),e("ul",null,[e("li",null,[n("How do I get a redemption code? "),e("ul",null,[e("li",null,"Contact us by joining our channel to make a purchase.")])]),e("li",null,[n("Why does the remaining sessions show as 0 after starting? "),e("ul",null,[e("li",null,"The start process did not include login. After clicking the 🚀 button to log in, you will be able to see the remaining sessions.")])])],-1)]))}const d=l(o,[["render",i],["__file","faq.html.vue"]]),c=JSON.parse('{"path":"/en/guide/faq.html","title":"FAQ","lang":"en-US","frontmatter":{"title":"FAQ"},"headers":[],"git":{},"filePathRelative":"en/guide/faq.md"}');export{d as comp,c as data}; diff --git a/assets/faq.html-jnzDfaqT.js b/assets/faq.html-D4LRbZ66.js similarity index 92% rename from assets/faq.html-jnzDfaqT.js rename to assets/faq.html-D4LRbZ66.js index 2ba7a92..d8dfb40 100644 --- a/assets/faq.html-jnzDfaqT.js +++ b/assets/faq.html-D4LRbZ66.js @@ -1 +1 @@ -import{_ as a,c as n,b as l,d as t,o as r}from"./app-D5IplOGW.js";const i={};function s(o,e){return r(),n("div",null,e[0]||(e[0]=[l("h1",{id:"常见问题",tabindex:"-1"},[l("a",{class:"header-anchor",href:"#常见问题"},[l("span",null,"常见问题")])],-1),l("ul",null,[l("li",null,[t("如何获取兑换码? "),l("ul",null,[l("li",null,"添加我们的频道联系我们购买")])]),l("li",null,[t("为什么启动后显示的剩余场次为0? "),l("ul",null,[l("li",null,"启动并没有进行登入, 点击【🚀】按钮进行登入后才能看到剩余场次")])])],-1)]))}const c=a(i,[["render",s],["__file","faq.html.vue"]]),d=JSON.parse('{"path":"/zh/guide/faq.html","title":"常见问题","lang":"zh-CN","frontmatter":{"title":"常见问题"},"headers":[],"git":{},"filePathRelative":"zh/guide/faq.md"}');export{c as comp,d as data}; +import{_ as a,c as n,b as l,d as t,o as r}from"./app-UNZ7W0t3.js";const i={};function s(o,e){return r(),n("div",null,e[0]||(e[0]=[l("h1",{id:"常见问题",tabindex:"-1"},[l("a",{class:"header-anchor",href:"#常见问题"},[l("span",null,"常见问题")])],-1),l("ul",null,[l("li",null,[t("如何获取兑换码? "),l("ul",null,[l("li",null,"添加我们的频道联系我们购买")])]),l("li",null,[t("为什么启动后显示的剩余场次为0? "),l("ul",null,[l("li",null,"启动并没有进行登入, 点击【🚀】按钮进行登入后才能看到剩余场次")])])],-1)]))}const c=a(i,[["render",s],["__file","faq.html.vue"]]),d=JSON.parse('{"path":"/zh/guide/faq.html","title":"常见问题","lang":"zh-CN","frontmatter":{"title":"常见问题"},"headers":[],"git":{},"filePathRelative":"zh/guide/faq.md"}');export{c as comp,d as data}; diff --git a/assets/get-started.html-DtqSxnn5.js b/assets/get-started.html-DlqG4N74.js similarity index 97% rename from assets/get-started.html-DtqSxnn5.js rename to assets/get-started.html-DlqG4N74.js index a2e33ce..77372c2 100644 --- a/assets/get-started.html-DtqSxnn5.js +++ b/assets/get-started.html-DlqG4N74.js @@ -1 +1 @@ -import{_ as e}from"./account_settings-Ch5g1JML.js";import{_ as a,c as r,a as o,o as n}from"./app-D5IplOGW.js";const i={};function l(s,t){return n(),r("div",null,t[0]||(t[0]=[o('

Install the Software

  • Visit the releases page to download the version suitable for your operating system.
  • Extract the compressed file.
  • Run the application. The software will automatically launch a browser (if it doesn't, you can manually visit http://localhost:30010/webui).

Launch the Software

Depending on your operating system, the way to launch the software may vary:

  • Windows: Double-click archer.exe.
    • If you need to keep the log running, open a terminal, navigate to the extracted directory, and type start /K archer.exe.
  • Linux: Open a terminal, navigate to the extracted directory, and type ./archer to run the program.
  • macOS: Open a terminal, navigate to the extracted directory, and type ./archer to run the program.

Start Using the Software

account_settings.png

  • Click the Register button.
    • If you are already registered, simply fill in your existing ID and click the Save button on the right.
  • Click the Save button.
  • Click the 🚀 button to log in.
  • After the login is successful, a game window will pop up. Log in to your game account inside the game window.
  • Once the game login is complete, go to the Account Information page in the WebUI, enter your redemption code, and click the Redeem button.
  • After that, you can start the match.
',9)]))}const g=a(i,[["render",l],["__file","get-started.html.vue"]]),u=JSON.parse('{"path":"/en/guide/get-started.html","title":"Get Started","lang":"en-US","frontmatter":{"title":"Get Started"},"headers":[],"git":{},"filePathRelative":"en/guide/get-started.md"}');export{g as comp,u as data}; +import{_ as e}from"./account_settings-Ch5g1JML.js";import{_ as a,c as r,a as o,o as n}from"./app-UNZ7W0t3.js";const i={};function l(s,t){return n(),r("div",null,t[0]||(t[0]=[o('

Install the Software

  • Visit the releases page to download the version suitable for your operating system.
  • Extract the compressed file.
  • Run the application. The software will automatically launch a browser (if it doesn't, you can manually visit http://localhost:30010/webui).

Launch the Software

Depending on your operating system, the way to launch the software may vary:

  • Windows: Double-click archer.exe.
    • If you need to keep the log running, open a terminal, navigate to the extracted directory, and type start /K archer.exe.
  • Linux: Open a terminal, navigate to the extracted directory, and type ./archer to run the program.
  • macOS: Open a terminal, navigate to the extracted directory, and type ./archer to run the program.

Start Using the Software

account_settings.png

  • Click the Register button.
    • If you are already registered, simply fill in your existing ID and click the Save button on the right.
  • Click the Save button.
  • Click the 🚀 button to log in.
  • After the login is successful, a game window will pop up. Log in to your game account inside the game window.
  • Once the game login is complete, go to the Account Information page in the WebUI, enter your redemption code, and click the Redeem button.
  • After that, you can start the match.
',9)]))}const g=a(i,[["render",l],["__file","get-started.html.vue"]]),u=JSON.parse('{"path":"/en/guide/get-started.html","title":"Get Started","lang":"en-US","frontmatter":{"title":"Get Started"},"headers":[],"git":{},"filePathRelative":"en/guide/get-started.md"}');export{g as comp,u as data}; diff --git a/assets/get-started.html-0XfMm4nY.js b/assets/get-started.html-pFpjH6c0.js similarity index 97% rename from assets/get-started.html-0XfMm4nY.js rename to assets/get-started.html-pFpjH6c0.js index 2e04d47..1350632 100644 --- a/assets/get-started.html-0XfMm4nY.js +++ b/assets/get-started.html-pFpjH6c0.js @@ -1 +1 @@ -import{_ as l}from"./account_settings-Ch5g1JML.js";import{_ as a,c as t,a as r,o as i}from"./app-D5IplOGW.js";const o={};function s(c,e){return i(),t("div",null,e[0]||(e[0]=[r('

安装软件

启动软件

根据你的操作系统,启动软件的方式可能有所不同

  • Windows: 双击运行 archer.exe
    • 如需要保留运行日志,打开终端,切换到解压后的目录, 输入 start /K archer.exe
  • Linux: 打开终端,切换到解压后的目录,输入 ./archer 运行程序
  • macOS: 打开终端,切换到解压后的目录,输入 ./archer 运行程序

开始使用

account_settings.png

  • 点击【注册】按钮
    • 如果你已经注册只需要填入已有的ID然后点击右边的【保存】即可
  • 点击【保存】按钮
  • 点击【🚀】按钮进行登入
  • 等待登入成功后会弹出游戏窗口, 在游戏窗口内登入游戏账号
  • 等待游戏登入完成后, 在【WebUI】的【账号信息】页面填入【兑换码】并点击【兑换】按钮
  • 完成后即可开启对局
',9)]))}const d=a(o,[["render",s],["__file","get-started.html.vue"]]),p=JSON.parse('{"path":"/zh/guide/get-started.html","title":"快速开始","lang":"zh-CN","frontmatter":{"title":"快速开始"},"headers":[],"git":{},"filePathRelative":"zh/guide/get-started.md"}');export{d as comp,p as data}; +import{_ as l}from"./account_settings-Ch5g1JML.js";import{_ as a,c as t,a as r,o as i}from"./app-UNZ7W0t3.js";const o={};function s(c,e){return i(),t("div",null,e[0]||(e[0]=[r('

安装软件

启动软件

根据你的操作系统,启动软件的方式可能有所不同

  • Windows: 双击运行 archer.exe
    • 如需要保留运行日志,打开终端,切换到解压后的目录, 输入 start /K archer.exe
  • Linux: 打开终端,切换到解压后的目录,输入 ./archer 运行程序
  • macOS: 打开终端,切换到解压后的目录,输入 ./archer 运行程序

开始使用

account_settings.png

  • 点击【注册】按钮
    • 如果你已经注册只需要填入已有的ID然后点击右边的【保存】即可
  • 点击【保存】按钮
  • 点击【🚀】按钮进行登入
  • 等待登入成功后会弹出游戏窗口, 在游戏窗口内登入游戏账号
  • 等待游戏登入完成后, 在【WebUI】的【账号信息】页面填入【兑换码】并点击【兑换】按钮
  • 完成后即可开启对局
',9)]))}const d=a(o,[["render",s],["__file","get-started.html.vue"]]),p=JSON.parse('{"path":"/zh/guide/get-started.html","title":"快速开始","lang":"zh-CN","frontmatter":{"title":"快速开始"},"headers":[],"git":{},"filePathRelative":"zh/guide/get-started.md"}');export{d as comp,p as data}; diff --git a/assets/index.html-BQ5wDseW.js b/assets/index.html-BQ5wDseW.js new file mode 100644 index 0000000..414b822 --- /dev/null +++ b/assets/index.html-BQ5wDseW.js @@ -0,0 +1 @@ +import{_ as e,c as t,o as i}from"./app-UNZ7W0t3.js";const n={};function a(o,s){return i(),t("div")}const l=e(n,[["render",a],["__file","index.html.vue"]]),c=JSON.parse('{"path":"/en/","title":"Home","lang":"en-US","frontmatter":{"home":true,"title":"Home","actions":[{"text":"Get Started","link":"/en/guide/get-started","type":"primary"}],"features":[{"title":"Simplicity First","details":"Compiled as a static software with Go as the core, it starts quickly without requiring any runtime environment, ready to use out of the box."},{"title":"Real Rankings","details":"Actual games with 9th dan in Tenhou, Soul Heaven rank in Majsoul. Unlike other software claiming 10th dan in Tenhou without verification, real accounts with genuine rankings exist."},{"title":"Fast and Stable","details":"Multiple servers are distributed across various regions, allowing users to connect to the nearest one. The backend is developed with Go, offering high performance and stability."},{"title":"No Dependencies","details":"No need to install any software or dependencies like Python, Rust, Mitm software, or Mitm certificates to run the application."},{"title":"Plugin Support","details":"Supports custom plugins, making it easy to extend functionality. Users can quickly create their own custom plugins with the software."},{"title":"Easy Development","details":"Developed with Go, it allows easy secondary development without the need to learn complex programming languages."}],"footer":"Copyright © 2019-present MoxComic Community"},"headers":[],"git":{},"filePathRelative":"en/README.md"}');export{l as comp,c as data}; diff --git a/assets/index.html-Dp0Ea0x4.js b/assets/index.html-BVLvsL7v.js similarity index 88% rename from assets/index.html-Dp0Ea0x4.js rename to assets/index.html-BVLvsL7v.js index 7c65215..5e529a0 100644 --- a/assets/index.html-Dp0Ea0x4.js +++ b/assets/index.html-BVLvsL7v.js @@ -1 +1 @@ -import{_ as n,c as o,o as i}from"./app-D5IplOGW.js";const a={__name:"index.html",setup(r,{expose:t}){t(),typeof window<"u"&&(window.location.href="/archer/zh/");const e={};return Object.defineProperty(e,"__isScriptSetup",{enumerable:!1,value:!0}),e}};function c(r,t,e,_,s,p){return i(),o("div")}const l=n(a,[["render",c],["__file","index.html.vue"]]),f=JSON.parse('{"path":"/","title":"Redirecting...","lang":"en-US","frontmatter":{"home":true,"title":"Redirecting..."},"headers":[],"git":{},"filePathRelative":"README.md"}');export{l as comp,f as data}; +import{_ as n,c as o,o as i}from"./app-UNZ7W0t3.js";const a={__name:"index.html",setup(r,{expose:t}){t(),typeof window<"u"&&(window.location.href="/archer/zh/");const e={};return Object.defineProperty(e,"__isScriptSetup",{enumerable:!1,value:!0}),e}};function c(r,t,e,_,s,p){return i(),o("div")}const l=n(a,[["render",c],["__file","index.html.vue"]]),f=JSON.parse('{"path":"/","title":"Redirecting...","lang":"en-US","frontmatter":{"home":true,"title":"Redirecting..."},"headers":[],"git":{},"filePathRelative":"README.md"}');export{l as comp,f as data}; diff --git a/assets/index.html-qoh0DYIF.js b/assets/index.html-qoh0DYIF.js deleted file mode 100644 index 8013cb4..0000000 --- a/assets/index.html-qoh0DYIF.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as e,c as t,o as a}from"./app-D5IplOGW.js";const n={};function i(o,r){return a(),t("div")}const l=e(n,[["render",i],["__file","index.html.vue"]]),u=JSON.parse(`{"path":"/en/","title":"Home","lang":"en-US","frontmatter":{"home":true,"title":"Home","actions":[{"text":"Get Started","link":"/en/guide/get-started","type":"primary"}],"features":[{"title":"Simple First","details":"Static software compiled with Go language can start quickly without the need to install any runtime environment, ready to use right out of the box."},{"title":"Real Rank","details":"The actual ranking of Tenhou is 9 dan, and the actual ranking of Juanhun is Ten Tian. It's not like other software that boasts Tenhou at 10 dan but then cannot find anyone with that ranking online; instead, there are real accounts with actual match rankings existing."},{"title":"Ultra Stable","details":"There are multiple servers distributed in various locations, allowing users to connect to the nearest server. The server backend is developed in Go language, with very high performance and stability."},{"title":"No additional software required","details":"No software installation is required; you can run it without installing any dependencies such as Python, Rust, Mitm software, or Mitm certificates."},{"title":"Support Plugin","details":"Supports custom plugins, easily expand functionality, users can quickly create their own customized plugins using the software."},{"title":"Secondary Development","details":"Developed based on Go language, you can easily perform secondary development without needing to learn a complex programming language."}],"footer":"Copyright © 2019-present MoxComic Community"},"headers":[],"git":{},"filePathRelative":"en/README.md"}`);export{l as comp,u as data}; diff --git a/assets/index.html-BVwo7izf.js b/assets/index.html-xVGUxIs3.js similarity index 91% rename from assets/index.html-BVwo7izf.js rename to assets/index.html-xVGUxIs3.js index b1dddd3..b81c6b9 100644 --- a/assets/index.html-BVwo7izf.js +++ b/assets/index.html-xVGUxIs3.js @@ -1 +1 @@ -import{_ as t,c as e,o as i}from"./app-D5IplOGW.js";const a={};function o(l,r){return i(),e("div")}const n=t(a,[["render",o],["__file","index.html.vue"]]),c=JSON.parse('{"path":"/zh/","title":"首页","lang":"zh-CN","frontmatter":{"home":true,"title":"首页","actions":[{"text":"快速开始","link":"/zh/guide/get-started","type":"primary"}],"features":[{"title":"简洁至上","details":"以 Go 语言为核心进行编译的静态软件, 无需安装任何运行环境即可快速启动, 开箱即用"},{"title":"真实段位","details":"天凤实际对局九段, 雀魂实际对局魂天, 不是其他软件虚空吹牛天凤十段然后水表网查无此人, 而是有真实的对局段位账号位存在"},{"title":"极速稳定","details":"在各地均分布有多台服务器, 让用户连接到最近的服务器, 服务器后台采用 Go 语言开发, 性能极高, 稳定性极高"},{"title":"免装软件","details":"无需安装任何软件, 不需要安装任何Python、Rust、Mitm软件、Mitm证书等依赖即可运行"},{"title":"支持插件","details":"支持自定义插件, 轻松扩展功能, 用户可以快速的使用软件制作自己的定制化的插件"},{"title":"二次开发","details":"基于 Go 语言开发, 无需学习复杂的编程语言, 即可轻松的进行二次开发"}],"footer":"Copyright © 2019-present MoxComic Community"},"headers":[],"git":{},"filePathRelative":"zh/README.md"}');export{n as comp,c as data}; +import{_ as t,c as e,o as i}from"./app-UNZ7W0t3.js";const a={};function o(l,r){return i(),e("div")}const n=t(a,[["render",o],["__file","index.html.vue"]]),c=JSON.parse('{"path":"/zh/","title":"首页","lang":"zh-CN","frontmatter":{"home":true,"title":"首页","actions":[{"text":"快速开始","link":"/zh/guide/get-started","type":"primary"}],"features":[{"title":"简洁至上","details":"以 Go 语言为核心进行编译的静态软件, 无需安装任何运行环境即可快速启动, 开箱即用"},{"title":"真实段位","details":"天凤实际对局九段, 雀魂实际对局魂天, 不是其他软件虚空吹牛天凤十段然后水表网查无此人, 而是有真实的对局段位账号位存在"},{"title":"极速稳定","details":"在各地均分布有多台服务器, 让用户连接到最近的服务器, 服务器后台采用 Go 语言开发, 性能极高, 稳定性极高"},{"title":"无需依赖","details":"无需安装任何软件, 不需要安装任何Python、Rust、Mitm软件、Mitm证书等依赖即可运行"},{"title":"支持插件","details":"支持自定义插件, 轻松扩展功能, 用户可以快速的使用软件制作自己的定制化的插件"},{"title":"二次开发","details":"基于 Go 语言开发, 无需学习复杂的编程语言, 即可轻松的进行二次开发"}],"footer":"Copyright © 2019-present MoxComic Community"},"headers":[],"git":{},"filePathRelative":"zh/README.md"}');export{n as comp,c as data}; diff --git a/assets/mgr-lobby.html-A-kB9_Qx.js b/assets/mgr-lobby.html-CU3tcK-2.js similarity index 97% rename from assets/mgr-lobby.html-A-kB9_Qx.js rename to assets/mgr-lobby.html-CU3tcK-2.js index 0ed9b3e..aeff4a1 100644 --- a/assets/mgr-lobby.html-A-kB9_Qx.js +++ b/assets/mgr-lobby.html-CU3tcK-2.js @@ -1,4 +1,4 @@ -import{_ as n,c as s,a as e,o as l}from"./app-D5IplOGW.js";const t={};function i(d,a){return l(),s("div",null,a[0]||(a[0]=[e(`

包名

  • lobbymgr

引用方式

  • import "github.com/moxcomic/Archer/mgr/lobbymgr"

方法列表

名称参数返回值备注
Inst*lobbymgr.LobbyMgr大厅管理器实例

实例方法

名称参数返回值备注
Enablebool返回是否在游戏大厅页面

示例代码

package main
+import{_ as n,c as s,a as e,o as l}from"./app-UNZ7W0t3.js";const t={};function i(d,a){return l(),s("div",null,a[0]||(a[0]=[e(`

包名

  • lobbymgr

引用方式

  • import "github.com/moxcomic/Archer/mgr/lobbymgr"

方法列表

名称参数返回值备注
Inst*lobbymgr.LobbyMgr大厅管理器实例

实例方法

名称参数返回值备注
Enablebool返回是否在游戏大厅页面

示例代码

package main
 
 import (
   "github.com/moxcomic/Archer/mgr/lobbymgr"
diff --git a/assets/mgr-lobby.html-CE_wmapW.js b/assets/mgr-lobby.html-KfEBlUj_.js
similarity index 97%
rename from assets/mgr-lobby.html-CE_wmapW.js
rename to assets/mgr-lobby.html-KfEBlUj_.js
index 4471c23..58b3fbb 100644
--- a/assets/mgr-lobby.html-CE_wmapW.js
+++ b/assets/mgr-lobby.html-KfEBlUj_.js
@@ -1,4 +1,4 @@
-import{_ as e,c as n,a as s,o as t}from"./app-D5IplOGW.js";const l={};function i(d,a){return t(),n("div",null,a[0]||(a[0]=[s(`

Package Name

  • lobbymgr

Import

  • import "github.com/moxcomic/Archer/mgr/lobbymgr"

Method List

NameParametersReturn ValueNotes
InstNone*lobbymgr.LobbyMgrLobby manager instance

Instance Methods

NameParametersReturn ValueNotes
EnableNoneboolReturns whether the user is on the game lobby page

Example Code

package main
+import{_ as e,c as n,a as s,o as t}from"./app-UNZ7W0t3.js";const l={};function i(d,a){return t(),n("div",null,a[0]||(a[0]=[s(`

Package Name

  • lobbymgr

Import

  • import "github.com/moxcomic/Archer/mgr/lobbymgr"

Method List

NameParametersReturn ValueNotes
InstNone*lobbymgr.LobbyMgrLobby manager instance

Instance Methods

NameParametersReturn ValueNotes
EnableNoneboolReturns whether the user is on the game lobby page

Example Code

package main
 
 import (
   "github.com/moxcomic/Archer/mgr/lobbymgr"
diff --git a/en/auto/basic-framework.html b/en/auto/basic-framework.html
index 9de6a92..9e9874e 100644
--- a/en/auto/basic-framework.html
+++ b/en/auto/basic-framework.html
@@ -33,8 +33,8 @@
     
     Basic Framework | Archer
     
-    
-    
+    
+    
   
   
     
- + diff --git a/en/auto/basics.html b/en/auto/basics.html index 7ff7653..2e0fc82 100644 --- a/en/auto/basics.html +++ b/en/auto/basics.html @@ -33,11 +33,11 @@ Basic Knowledge | Archer - - + +
- + diff --git a/en/auto/majsoul/action/advanced-action-discard.html b/en/auto/majsoul/action/advanced-action-discard.html index 9b55173..19470db 100644 --- a/en/auto/majsoul/action/advanced-action-discard.html +++ b/en/auto/majsoul/action/advanced-action-discard.html @@ -33,8 +33,8 @@ Advanced | Archer - - + +
- + diff --git a/en/auto/majsoul/action/basic-action-chii.html b/en/auto/majsoul/action/basic-action-chii.html index 39d2f0d..c3658fa 100644 --- a/en/auto/majsoul/action/basic-action-chii.html +++ b/en/auto/majsoul/action/basic-action-chii.html @@ -33,8 +33,8 @@ Chii (Eat) | Archer - - + +
- + diff --git a/en/auto/majsoul/action/basic-action-discard.html b/en/auto/majsoul/action/basic-action-discard.html index 66a08c2..30e4893 100644 --- a/en/auto/majsoul/action/basic-action-discard.html +++ b/en/auto/majsoul/action/basic-action-discard.html @@ -33,8 +33,8 @@ Basics | Archer - - + +
- + diff --git a/en/auto/majsoul/action/basic-action-gang.html b/en/auto/majsoul/action/basic-action-gang.html index 17878ab..2c831d1 100644 --- a/en/auto/majsoul/action/basic-action-gang.html +++ b/en/auto/majsoul/action/basic-action-gang.html @@ -33,8 +33,8 @@ Kong | Archer - - + +
- + diff --git a/en/auto/majsoul/action/basic-action-pon.html b/en/auto/majsoul/action/basic-action-pon.html index b894ea5..fb8e01a 100644 --- a/en/auto/majsoul/action/basic-action-pon.html +++ b/en/auto/majsoul/action/basic-action-pon.html @@ -33,8 +33,8 @@ Pon | Archer - - + +
- + diff --git a/en/auto/majsoul/action_type/basic-action-type.html b/en/auto/majsoul/action_type/basic-action-type.html index c94c3bb..e689436 100644 --- a/en/auto/majsoul/action_type/basic-action-type.html +++ b/en/auto/majsoul/action_type/basic-action-type.html @@ -33,11 +33,11 @@ Basic | Archer - - + +
- + diff --git a/en/auto/majsoul/actions/basic-action-majsoul.html b/en/auto/majsoul/actions/basic-action-majsoul.html index 39cc5e9..3935b7a 100644 --- a/en/auto/majsoul/actions/basic-action-majsoul.html +++ b/en/auto/majsoul/actions/basic-action-majsoul.html @@ -33,12 +33,12 @@ Basic | Archer - - + +
- + diff --git a/en/auto/majsoul/event/advanced-event-login.html b/en/auto/majsoul/event/advanced-event-login.html index 449ef7a..185bd23 100644 --- a/en/auto/majsoul/event/advanced-event-login.html +++ b/en/auto/majsoul/event/advanced-event-login.html @@ -33,8 +33,8 @@ Advanced - Mahjong Event Login | Archer - - + +
- + diff --git a/en/auto/majsoul/event/basic-event-login.html b/en/auto/majsoul/event/basic-event-login.html index d054ba6..fb34d4e 100644 --- a/en/auto/majsoul/event/basic-event-login.html +++ b/en/auto/majsoul/event/basic-event-login.html @@ -33,8 +33,8 @@ Login Event | Archer - - + +
- + diff --git a/en/auto/majsoul/gamestate/basic-gamestate.html b/en/auto/majsoul/gamestate/basic-gamestate.html index 25bf24f..9604028 100644 --- a/en/auto/majsoul/gamestate/basic-gamestate.html +++ b/en/auto/majsoul/gamestate/basic-gamestate.html @@ -33,11 +33,11 @@ Basic | Archer - - + +
- + diff --git a/en/auto/majsoul/lq/basic-lq.html b/en/auto/majsoul/lq/basic-lq.html index 08c9ba7..73f2bd5 100644 --- a/en/auto/majsoul/lq/basic-lq.html +++ b/en/auto/majsoul/lq/basic-lq.html @@ -33,11 +33,11 @@ Basic | Archer - - + +
- + diff --git a/en/auto/majsoul/mgr/mgr-lobby.html b/en/auto/majsoul/mgr/mgr-lobby.html index c0ec421..2f1c80c 100644 --- a/en/auto/majsoul/mgr/mgr-lobby.html +++ b/en/auto/majsoul/mgr/mgr-lobby.html @@ -33,8 +33,8 @@ Lobby Manager | Archer - - + +
- + diff --git a/en/auto/majsoul/tile/basic-tile.html b/en/auto/majsoul/tile/basic-tile.html index 90e025f..f0fc1d4 100644 --- a/en/auto/majsoul/tile/basic-tile.html +++ b/en/auto/majsoul/tile/basic-tile.html @@ -33,11 +33,11 @@ Basic | Archer - - + +
- + diff --git a/en/guide/contact-us.html b/en/guide/contact-us.html index fd2c05f..2e848dc 100644 --- a/en/guide/contact-us.html +++ b/en/guide/contact-us.html @@ -33,11 +33,11 @@ Contact Us | Archer - - + +
- + diff --git a/en/guide/faq.html b/en/guide/faq.html index 56353f0..8bf364a 100644 --- a/en/guide/faq.html +++ b/en/guide/faq.html @@ -33,11 +33,11 @@ FAQ | Archer - - + +
- + diff --git a/en/guide/get-started.html b/en/guide/get-started.html index 05b2a74..eb7eff1 100644 --- a/en/guide/get-started.html +++ b/en/guide/get-started.html @@ -33,11 +33,11 @@ Get Started | Archer - - + +
- + diff --git a/en/index.html b/en/index.html index 6588b23..b366784 100644 --- a/en/index.html +++ b/en/index.html @@ -33,11 +33,11 @@ Home | Archer - - + + -
- +
+ diff --git a/en/plugin/basic-plugin.html b/en/plugin/basic-plugin.html index 0273893..b585bf6 100644 --- a/en/plugin/basic-plugin.html +++ b/en/plugin/basic-plugin.html @@ -33,11 +33,11 @@ Basics | Archer - - + +
- + diff --git a/index.html b/index.html index f096d7e..b94d390 100644 --- a/index.html +++ b/index.html @@ -33,11 +33,11 @@ Redirecting... - - + +
- + diff --git a/zh/auto/basic-framework.html b/zh/auto/basic-framework.html index 102152a..1ebd784 100644 --- a/zh/auto/basic-framework.html +++ b/zh/auto/basic-framework.html @@ -33,8 +33,8 @@ 基础框架 | Archer - - + +
- + diff --git a/zh/auto/basics.html b/zh/auto/basics.html index ba6c9f6..58c4f7c 100644 --- a/zh/auto/basics.html +++ b/zh/auto/basics.html @@ -33,11 +33,11 @@ 基础知识 | Archer - - + +
- + diff --git a/zh/auto/majsoul/action/advanced-action-discard.html b/zh/auto/majsoul/action/advanced-action-discard.html index 9daac58..776921d 100644 --- a/zh/auto/majsoul/action/advanced-action-discard.html +++ b/zh/auto/majsoul/action/advanced-action-discard.html @@ -33,8 +33,8 @@ 进阶 | Archer - - + +
- + diff --git a/zh/auto/majsoul/action/basic-action-chii.html b/zh/auto/majsoul/action/basic-action-chii.html index 13dc3c9..e3f4ba1 100644 --- a/zh/auto/majsoul/action/basic-action-chii.html +++ b/zh/auto/majsoul/action/basic-action-chii.html @@ -33,8 +33,8 @@ 吃 | Archer - - + +
- + diff --git a/zh/auto/majsoul/action/basic-action-discard.html b/zh/auto/majsoul/action/basic-action-discard.html index 49dd604..7928767 100644 --- a/zh/auto/majsoul/action/basic-action-discard.html +++ b/zh/auto/majsoul/action/basic-action-discard.html @@ -33,8 +33,8 @@ 基础 | Archer - - + +
- + diff --git a/zh/auto/majsoul/action/basic-action-gang.html b/zh/auto/majsoul/action/basic-action-gang.html index b6b1a76..8dfdbf2 100644 --- a/zh/auto/majsoul/action/basic-action-gang.html +++ b/zh/auto/majsoul/action/basic-action-gang.html @@ -33,8 +33,8 @@ 杠 | Archer - - + +
- + diff --git a/zh/auto/majsoul/action/basic-action-pon.html b/zh/auto/majsoul/action/basic-action-pon.html index 4367bd9..0f06439 100644 --- a/zh/auto/majsoul/action/basic-action-pon.html +++ b/zh/auto/majsoul/action/basic-action-pon.html @@ -33,8 +33,8 @@ 碰 | Archer - - + +
- + diff --git a/zh/auto/majsoul/action_type/basic-action-type.html b/zh/auto/majsoul/action_type/basic-action-type.html index 2b0186c..e578a5d 100644 --- a/zh/auto/majsoul/action_type/basic-action-type.html +++ b/zh/auto/majsoul/action_type/basic-action-type.html @@ -33,11 +33,11 @@ 基本 | Archer - - + +
- + diff --git a/zh/auto/majsoul/actions/basic-action-majsoul.html b/zh/auto/majsoul/actions/basic-action-majsoul.html index fe25c95..3f016a1 100644 --- a/zh/auto/majsoul/actions/basic-action-majsoul.html +++ b/zh/auto/majsoul/actions/basic-action-majsoul.html @@ -33,12 +33,12 @@ 基本 | Archer - - + +
- + diff --git a/zh/auto/majsoul/event/advanced-event-login.html b/zh/auto/majsoul/event/advanced-event-login.html index b3be94a..837864d 100644 --- a/zh/auto/majsoul/event/advanced-event-login.html +++ b/zh/auto/majsoul/event/advanced-event-login.html @@ -33,8 +33,8 @@ 进阶:麻将事件登录 | Archer - - + +
- + diff --git a/zh/auto/majsoul/event/basic-event-login.html b/zh/auto/majsoul/event/basic-event-login.html index d71639e..a2f56c3 100644 --- a/zh/auto/majsoul/event/basic-event-login.html +++ b/zh/auto/majsoul/event/basic-event-login.html @@ -33,8 +33,8 @@ 登录事件 | Archer - - + +
- + diff --git a/zh/auto/majsoul/gamestate/basic-gamestate.html b/zh/auto/majsoul/gamestate/basic-gamestate.html index eebc87a..4d5fe89 100644 --- a/zh/auto/majsoul/gamestate/basic-gamestate.html +++ b/zh/auto/majsoul/gamestate/basic-gamestate.html @@ -33,11 +33,11 @@ 基本 | Archer - - + +
- + diff --git a/zh/auto/majsoul/lq/basic-lq.html b/zh/auto/majsoul/lq/basic-lq.html index 5bfd552..744f069 100644 --- a/zh/auto/majsoul/lq/basic-lq.html +++ b/zh/auto/majsoul/lq/basic-lq.html @@ -33,11 +33,11 @@ 基本 | Archer - - + +
- + diff --git a/zh/auto/majsoul/mgr/mgr-lobby.html b/zh/auto/majsoul/mgr/mgr-lobby.html index 2dbf253..055afd9 100644 --- a/zh/auto/majsoul/mgr/mgr-lobby.html +++ b/zh/auto/majsoul/mgr/mgr-lobby.html @@ -33,8 +33,8 @@ 大厅管理器 | Archer - - + +
- + diff --git a/zh/auto/majsoul/tile/basic-tile.html b/zh/auto/majsoul/tile/basic-tile.html index 1abe501..6497507 100644 --- a/zh/auto/majsoul/tile/basic-tile.html +++ b/zh/auto/majsoul/tile/basic-tile.html @@ -33,11 +33,11 @@ 基本 | Archer - - + +
- + diff --git a/zh/guide/contact-us.html b/zh/guide/contact-us.html index 2c1fd3b..2dd0064 100644 --- a/zh/guide/contact-us.html +++ b/zh/guide/contact-us.html @@ -33,11 +33,11 @@ 联系我们 | Archer - - + + - + diff --git a/zh/guide/faq.html b/zh/guide/faq.html index 98d4d19..325d465 100644 --- a/zh/guide/faq.html +++ b/zh/guide/faq.html @@ -33,11 +33,11 @@ 常见问题 | Archer - - + +
- + diff --git a/zh/guide/get-started.html b/zh/guide/get-started.html index 10d732f..322c72a 100644 --- a/zh/guide/get-started.html +++ b/zh/guide/get-started.html @@ -33,11 +33,11 @@ 快速开始 | Archer - - + +
- + diff --git a/zh/index.html b/zh/index.html index b4dcb5a..050a1a0 100644 --- a/zh/index.html +++ b/zh/index.html @@ -33,11 +33,11 @@ 首页 | Archer - - + + -
- +
+ diff --git a/zh/plugin/basic-plugin.html b/zh/plugin/basic-plugin.html index 1427da4..4507ac3 100644 --- a/zh/plugin/basic-plugin.html +++ b/zh/plugin/basic-plugin.html @@ -33,11 +33,11 @@ 基础 | Archer - - + +
- +