├── .eslintrc.js ├── .gitignore ├── .vscode └── settings.json ├── docs ├── .vuepress │ ├── bar.js │ ├── components │ │ └── Gitalk.vue │ ├── config.js │ ├── dist │ │ ├── 1.44 │ │ │ ├── index.html │ │ │ ├── 获取商店目标.html │ │ │ ├── 获取子控件.html │ │ │ ├── 获取是否窗口化模式.html │ │ │ ├── 获取父控件.html │ │ │ ├── 设置控件视口.html │ │ │ └── 设置窗口大小.html │ │ ├── 1.46 │ │ │ ├── index.html │ │ │ ├── 播放特效动画.html │ │ │ ├── 绑定特效.html │ │ │ └── 解除特效绑定.html │ │ ├── 1.47 │ │ │ ├── index.html │ │ │ ├── ui屏幕限制接口.html │ │ │ ├── 粒子缩放.html │ │ │ ├── 获取uid.html │ │ │ ├── 获取特效颜色.html │ │ │ └── 获取玩家选择单位列表.html │ │ ├── 1.48 │ │ │ ├── index.html │ │ │ ├── 修改单位碰撞体积大小.html │ │ │ ├── 修改单位移动类型.html │ │ │ ├── 新增ui接口.html │ │ │ └── 获取物品技能handle.html │ │ ├── 1.49 │ │ │ ├── index.html │ │ │ ├── 技能japi.html │ │ │ ├── 物品japi.html │ │ │ └── 装饰物japi.html │ │ ├── 404.html │ │ ├── Japi │ │ │ ├── index.html │ │ │ ├── 显示FPS文本.html │ │ │ ├── 清除字符串内存缓存.html │ │ │ ├── 清除模型内存缓存.html │ │ │ ├── 获取FPS帧数.html │ │ │ ├── 获取当前指向单位.html │ │ │ ├── 获取当前选择单位.html │ │ │ ├── 获取聊天框是否打开.html │ │ │ ├── 解锁BLP像素限制.html │ │ │ ├── 解锁FPS帧数上限.html │ │ │ ├── 设置单位名字.html │ │ │ ├── 设置单位头像模型.html │ │ │ ├── 设置单位普攻弹道弧度.html │ │ │ ├── 设置单位普攻弹道模型.html │ │ │ ├── 设置单位普攻弹道自导允许.html │ │ │ ├── 设置单位普攻弹道速度.html │ │ │ ├── 设置单位模型.html │ │ │ ├── 设置单位贴图.html │ │ │ ├── 设置单位鼠标指向UI跟血条是否显示.html │ │ │ ├── 设置特效动画.html │ │ │ ├── 设置特效坐标.html │ │ │ ├── 设置特效显示.html │ │ │ ├── 设置特效颜色.html │ │ │ └── 设置英雄称谓.html │ │ ├── Lua │ │ │ ├── dzapi.html │ │ │ ├── index.html │ │ │ ├── jass交互.html │ │ │ ├── message │ │ │ │ ├── hook.html │ │ │ │ ├── index.html │ │ │ │ ├── order_hook.html │ │ │ │ ├── 世界坐标转屏幕坐标.html │ │ │ │ ├── 屏幕坐标转世界坐标.html │ │ │ │ ├── 目标指示器.html │ │ │ │ ├── 网易平台判断观战或录像.html │ │ │ │ └── 获取单位血条高度.html │ │ │ ├── 引擎变动.html │ │ │ └── 服务器交互.html │ │ ├── Script │ │ │ ├── index.html │ │ │ ├── 例子 │ │ │ │ ├── index.html │ │ │ │ ├── 智能施法.html │ │ │ │ ├── 模型镜头查看器.html │ │ │ │ └── 聊天弹幕.html │ │ │ └── 界面 │ │ │ │ ├── index.html │ │ │ │ ├── 事件管理.html │ │ │ │ ├── 元类.html │ │ │ │ ├── 前言.html │ │ │ │ ├── 图像.html │ │ │ │ ├── 基类.html │ │ │ │ ├── 按钮.html │ │ │ │ ├── 文本.html │ │ │ │ ├── 构造器.html │ │ │ │ ├── 构造方法.html │ │ │ │ ├── 模型.html │ │ │ │ ├── 模型2.html │ │ │ │ ├── 热更新.html │ │ │ │ ├── 编辑框.html │ │ │ │ ├── 自定义控件.html │ │ │ │ └── 面板.html │ │ ├── assets │ │ │ ├── css │ │ │ │ ├── 0.styles.c6fd7e29.css │ │ │ │ └── 0.styles.cc1eb35d.css │ │ │ ├── img │ │ │ │ ├── logo.png │ │ │ │ └── search.83621669.svg │ │ │ └── js │ │ │ │ ├── 10.26e9ec57.js │ │ │ │ ├── 10.be7b0545.js │ │ │ │ ├── 11.d6630a85.js │ │ │ │ ├── 11.f340a64d.js │ │ │ │ ├── 12.2ec501ed.js │ │ │ │ ├── 12.cfe74fa6.js │ │ │ │ ├── 13.db65f6be.js │ │ │ │ ├── 13.facc486f.js │ │ │ │ ├── 14.1c76fe22.js │ │ │ │ ├── 14.da272856.js │ │ │ │ ├── 15.0bf3d021.js │ │ │ │ ├── 15.5e86f2a2.js │ │ │ │ ├── 16.02b84527.js │ │ │ │ ├── 16.1b57b93d.js │ │ │ │ ├── 17.6ad6185a.js │ │ │ │ ├── 17.fd61c20a.js │ │ │ │ ├── 18.ba48dd99.js │ │ │ │ ├── 19.86f4efbe.js │ │ │ │ ├── 2.c0db1b7d.js │ │ │ │ ├── 20.d970efc9.js │ │ │ │ ├── 21.703c7249.js │ │ │ │ ├── 22.489ecc5f.js │ │ │ │ ├── 22.e7e46729.js │ │ │ │ ├── 23.85c963d0.js │ │ │ │ ├── 23.925651e6.js │ │ │ │ ├── 24.7dbb304c.js │ │ │ │ ├── 24.afd2fc94.js │ │ │ │ ├── 25.7fd58002.js │ │ │ │ ├── 25.b76b0648.js │ │ │ │ ├── 26.33e33fe2.js │ │ │ │ ├── 26.c7f961a3.js │ │ │ │ ├── 27.09021ce2.js │ │ │ │ ├── 27.cca3644a.js │ │ │ │ ├── 28.32d49706.js │ │ │ │ ├── 28.fd101587.js │ │ │ │ ├── 29.30f8d4ef.js │ │ │ │ ├── 3.45bce87d.js │ │ │ │ ├── 30.af449c37.js │ │ │ │ ├── 31.df9f78c1.js │ │ │ │ ├── 32.929365b7.js │ │ │ │ ├── 32.a12ac998.js │ │ │ │ ├── 33.976f1fe9.js │ │ │ │ ├── 33.b0425df9.js │ │ │ │ ├── 34.1643114e.js │ │ │ │ ├── 34.ae400bd6.js │ │ │ │ ├── 35.31f45288.js │ │ │ │ ├── 35.35abb707.js │ │ │ │ ├── 36.91221393.js │ │ │ │ ├── 37.76d48e81.js │ │ │ │ ├── 37.f9a206de.js │ │ │ │ ├── 38.3fe9a9da.js │ │ │ │ ├── 38.a9b2858a.js │ │ │ │ ├── 39.2acd0029.js │ │ │ │ ├── 39.41ebd6a1.js │ │ │ │ ├── 4.6de145df.js │ │ │ │ ├── 4.9537b151.js │ │ │ │ ├── 40.991c878c.js │ │ │ │ ├── 41.6d1b9fd5.js │ │ │ │ ├── 42.e8ec1f23.js │ │ │ │ ├── 43.1b9ad91f.js │ │ │ │ ├── 44.1bc0bc05.js │ │ │ │ ├── 45.2e2624b0.js │ │ │ │ ├── 46.e0f7f0a9.js │ │ │ │ ├── 47.71e03106.js │ │ │ │ ├── 48.4c36b2bf.js │ │ │ │ ├── 48.c05ef370.js │ │ │ │ ├── 49.10a14558.js │ │ │ │ ├── 49.782501ce.js │ │ │ │ ├── 5.52049d14.js │ │ │ │ ├── 5.9fca25c8.js │ │ │ │ ├── 50.3646cffa.js │ │ │ │ ├── 51.0e3bad6f.js │ │ │ │ ├── 52.7eff5d8d.js │ │ │ │ ├── 53.d18b65db.js │ │ │ │ ├── 54.e63b0b76.js │ │ │ │ ├── 55.73f8cdda.js │ │ │ │ ├── 55.a182b72e.js │ │ │ │ ├── 56.e4060bab.js │ │ │ │ ├── 56.f1cf0370.js │ │ │ │ ├── 57.81c8cede.js │ │ │ │ ├── 58.71f9c3e4.js │ │ │ │ ├── 59.da8754c7.js │ │ │ │ ├── 6.235aaeb8.js │ │ │ │ ├── 60.d38f0b7b.js │ │ │ │ ├── 61.77b6cceb.js │ │ │ │ ├── 62.924f824f.js │ │ │ │ ├── 62.af142edc.js │ │ │ │ ├── 63.769bdfce.js │ │ │ │ ├── 63.da543160.js │ │ │ │ ├── 64.723cea43.js │ │ │ │ ├── 64.9812ba92.js │ │ │ │ ├── 65.3a1b9b9e.js │ │ │ │ ├── 65.a85f3009.js │ │ │ │ ├── 66.cd40bc10.js │ │ │ │ ├── 67.2c313763.js │ │ │ │ ├── 67.9b0c1394.js │ │ │ │ ├── 68.556a9992.js │ │ │ │ ├── 68.6670e611.js │ │ │ │ ├── 69.7ab017d8.js │ │ │ │ ├── 69.c7ad923e.js │ │ │ │ ├── 7.98619fb3.js │ │ │ │ ├── 70.eda8ee8d.js │ │ │ │ ├── 70.f2aa30a2.js │ │ │ │ ├── 71.977d46dc.js │ │ │ │ ├── 72.a0a4577b.js │ │ │ │ ├── 72.be1a714c.js │ │ │ │ ├── 73.39a3075f.js │ │ │ │ ├── 73.c0f5f5e5.js │ │ │ │ ├── 74.b3ac2adc.js │ │ │ │ ├── 75.6b0ffb3c.js │ │ │ │ ├── 76.4542f802.js │ │ │ │ ├── 77.5783f4c6.js │ │ │ │ ├── 78.6639b20f.js │ │ │ │ ├── 79.ecf932c7.js │ │ │ │ ├── 8.5b3a3bfc.js │ │ │ │ ├── 80.4132e8fb.js │ │ │ │ ├── 81.3faa1438.js │ │ │ │ ├── 82.157e46b2.js │ │ │ │ ├── 83.b4c472ea.js │ │ │ │ ├── 84.7fc82d8a.js │ │ │ │ ├── 85.89f04c74.js │ │ │ │ ├── 85.8dcebdbb.js │ │ │ │ ├── 86.449f1b07.js │ │ │ │ ├── 86.9d409c6c.js │ │ │ │ ├── 87.3d0e6ab9.js │ │ │ │ ├── 88.4de9f6e2.js │ │ │ │ ├── 89.a0a2213b.js │ │ │ │ ├── 9.ba38df62.js │ │ │ │ ├── 9.bc6ce26e.js │ │ │ │ ├── 90.6567a5e9.js │ │ │ │ ├── 90.6f28569d.js │ │ │ │ ├── 91.7702c941.js │ │ │ │ ├── 91.94d785a1.js │ │ │ │ ├── 92.9ee455fa.js │ │ │ │ ├── 93.2d0b5973.js │ │ │ │ ├── 93.b2c35c60.js │ │ │ │ ├── 94.73c85f15.js │ │ │ │ ├── 94.efcb0de4.js │ │ │ │ ├── 95.86195835.js │ │ │ │ ├── app.443f52e9.js │ │ │ │ └── app.7d11b960.js │ │ ├── favicon.ico │ │ ├── index.html │ │ ├── lua-engine.html │ │ └── lua-rsa.html │ ├── enhanceApp.js │ ├── jass.js │ ├── plugin.js │ ├── public │ │ ├── assets │ │ │ └── img │ │ │ │ └── logo.png │ │ └── favicon.ico │ └── sidebar.js ├── 1.44 │ ├── README.md │ ├── 获取商店目标.md │ ├── 获取子控件.md │ ├── 获取是否窗口化模式.md │ ├── 获取父控件.md │ ├── 设置控件视口.md │ └── 设置窗口大小.md ├── 1.46 │ ├── README.md │ ├── 播放特效动画.md │ ├── 绑定特效.md │ └── 解除特效绑定.md ├── 1.47 │ ├── README.md │ ├── ui屏幕限制接口.md │ ├── 粒子缩放.md │ ├── 获取uid.md │ ├── 获取特效颜色.md │ └── 获取玩家选择单位列表.md ├── 1.48 │ ├── README.md │ ├── 修改单位碰撞体积大小.md │ ├── 修改单位移动类型.md │ ├── 新增ui接口.md │ └── 获取物品技能handle.md ├── 1.49 │ ├── README.md │ ├── 其他api.md │ ├── 技能japi.md │ ├── 物品japi.md │ └── 装饰物japi.md ├── Japi │ ├── README.md │ ├── 显示FPS文本.md │ ├── 清除字符串内存缓存.md │ ├── 清除模型内存缓存.md │ ├── 获取FPS帧数.md │ ├── 获取当前指向单位.md │ ├── 获取当前选择单位.md │ ├── 获取聊天框是否打开.md │ ├── 解锁BLP像素限制.md │ ├── 解锁FPS帧数上限.md │ ├── 设置单位名字.md │ ├── 设置单位头像模型.md │ ├── 设置单位普攻弹道弧度.md │ ├── 设置单位普攻弹道模型.md │ ├── 设置单位普攻弹道自导允许.md │ ├── 设置单位普攻弹道速度.md │ ├── 设置单位模型.md │ ├── 设置单位贴图.md │ ├── 设置单位鼠标指向UI跟血条是否显示.md │ ├── 设置特效动画.md │ ├── 设置特效坐标.md │ ├── 设置特效显示.md │ ├── 设置特效颜色.md │ └── 设置英雄称谓.md ├── Lua │ ├── README.md │ ├── dzapi.md │ ├── jass交互.md │ ├── message │ │ ├── README.md │ │ ├── hook.md │ │ ├── order_hook.md │ │ ├── 世界坐标转屏幕坐标.md │ │ ├── 屏幕坐标转世界坐标.md │ │ ├── 目标指示器.md │ │ ├── 网易平台判断观战或录像.md │ │ └── 获取单位血条高度.md │ ├── 引擎变动.md │ └── 服务器交互.md ├── README.md ├── Script │ ├── README.md │ ├── 例子 │ │ ├── README.md │ │ ├── 智能施法.md │ │ ├── 模型镜头查看器.md │ │ └── 聊天弹幕.md │ └── 界面 │ │ ├── README.md │ │ ├── 事件管理.md │ │ ├── 元类.md │ │ ├── 前言.md │ │ ├── 图像.md │ │ ├── 基类.md │ │ ├── 按钮.md │ │ ├── 文本.md │ │ ├── 构造器.md │ │ ├── 构造方法.md │ │ ├── 模型.md │ │ ├── 模型2.md │ │ ├── 热更新.md │ │ ├── 编辑框.md │ │ ├── 自定义控件.md │ │ └── 面板.md ├── lua-engine.md └── lua-rsa.md └── package.json /.eslintrc.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PhoenixZeng/embedded-japi-vue-press/dab57781b268c84f4cd2dd646382c90cc5a9b060/.eslintrc.js -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | package-lock.json 3 | yarn.lock 4 | .temp -------------------------------------------------------------------------------- /.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | // #每次保存的时候自动格式化 3 | "editor.formatOnSave": true, 4 | "editor.formatOnType": true, 5 | // #每次保存的时候将代码按eslint格式进行修复 6 | "eslint.autoFixOnSave": true, 7 | "eslint.format.enable": true, 8 | "editor.codeActionsOnSave": { 9 | "source.fixAll.eslint": "explicit" 10 | }, 11 | } -------------------------------------------------------------------------------- /docs/.vuepress/components/Gitalk.vue: -------------------------------------------------------------------------------- 1 | // Comment.vue 2 | 7 | 8 | 32 | -------------------------------------------------------------------------------- /docs/.vuepress/config.js: -------------------------------------------------------------------------------- 1 | 2 | 3 | const jassConfig = require("./jass"); 4 | const plugin = require("./plugin"); 5 | const sidebar = require("./sidebar"); 6 | 7 | 8 | module.exports = { 9 | title: '内置Japi文档', 10 | description: 'embedded-japi-vue-press', 11 | evergreen: true, 12 | plugins: plugin, 13 | markdown: { 14 | lineNumbers: true, 15 | }, 16 | theme: 'yuu', 17 | themeConfig: { 18 | yuu: { 19 | defaultDarkTheme: true, 20 | disableThemeIgnore: true, 21 | labels: { 22 | darkTheme: '黑色主题', // Default is "Enable Dark Theme?" 23 | ignoreThemes: '忽略其他主题', // Default is "Ignore Other Themes?" 24 | }, 25 | }, 26 | // logo: '/assets/img/logo.png', 27 | prevLinks: false, 28 | nextLinks: false, 29 | smoothScroll: true, 30 | lastUpdated: '更新于', // string | boolean 31 | searchMaxSuggestions: 20, 32 | displayAllHeaders: true, // 默认值:false 33 | sidebar: sidebar, 34 | // github 35 | // 假定是 GitHub. 同时也可以是一个完整的 GitLab URL 36 | repo: 'PhoenixZeng/embedded-japi-vue-press', 37 | // 自定义仓库链接文字。默认从 `themeConfig.repo` 中自动推断为 38 | // "GitHub"/"GitLab"/"Bitbucket" 其中之一,或是 "Source"。 39 | repoLabel: '查看源码', 40 | 41 | // 以下为可选的编辑链接选项 42 | 43 | // 假如你的文档仓库和项目本身不在一个仓库: 44 | docsRepo: 'PhoenixZeng/embedded-japi-vue-press', 45 | // 假如文档不是放在仓库的根目录下: 46 | docsDir: 'docs', 47 | // 假如文档放在一个特定的分支下: 48 | docsBranch: 'main', 49 | // 默认是 false, 设置为 true 来启用 50 | editLinks: true, 51 | // 默认为 "Edit this page" 52 | editLinkText: '在GitHub上编辑' 53 | } 54 | } -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/img/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PhoenixZeng/embedded-japi-vue-press/dab57781b268c84f4cd2dd646382c90cc5a9b060/docs/.vuepress/dist/assets/img/logo.png -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/img/search.83621669.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/js/12.2ec501ed.js: -------------------------------------------------------------------------------- 1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[12],{220:function(s,a,t){"use strict";t.r(a);var e=t(2),n=Object(e.a)({},(function(){var s=this,a=s._self._c;return a("ContentSlotsDistributor",{attrs:{"slot-key":s.$parent.slotKey}},[a("h1",{attrs:{id:"获取是否窗口化模式"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#获取是否窗口化模式"}},[s._v("#")]),s._v(" 获取是否窗口化模式")]),s._v(" "),a("div",{staticClass:"language-jass line-numbers-mode"},[a("pre",{pre:!0,attrs:{class:"language-jass"}},[a("code",[a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("function")]),s._v(" IsWindowMode "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("takes")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token builtin"}},[s._v("nothing")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("returns")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token builtin"}},[s._v("boolean")]),s._v("\n")])]),s._v(" "),a("div",{staticClass:"line-numbers-wrapper"},[a("span",{staticClass:"line-number"},[s._v("1")]),a("br")])]),a("h1",{attrs:{id:"描述"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#描述"}},[s._v("#")]),s._v(" 描述")]),s._v(" "),a("p",[s._v("全屏状态下 返回 false\n 窗口化模式 返回 true")]),s._v(" "),a("h1",{attrs:{id:"返回值"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#返回值"}},[s._v("#")]),s._v(" 返回值")]),s._v(" "),a("table",[a("thead",[a("tr",[a("th",[s._v("类型")]),s._v(" "),a("th",[s._v("说明")])])]),s._v(" "),a("tbody",[a("tr",[a("td",[s._v("布尔值")]),s._v(" "),a("td",[s._v("true")])])])]),s._v(" "),a("h1",{attrs:{id:"例子"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#例子"}},[s._v("#")]),s._v(" 例子")]),s._v(" "),a("div",{staticClass:"language-jass line-numbers-mode"},[a("pre",{pre:!0,attrs:{class:"language-jass"}},[a("code",[s._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("local")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token builtin"}},[s._v("boolean")]),s._v(" mode "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" IsWindowMode()\n\n")])]),s._v(" "),a("div",{staticClass:"line-numbers-wrapper"},[a("span",{staticClass:"line-number"},[s._v("1")]),a("br"),a("span",{staticClass:"line-number"},[s._v("2")]),a("br"),a("span",{staticClass:"line-number"},[s._v("3")]),a("br")])]),a("div",{staticClass:"language-lua line-numbers-mode"},[a("pre",{pre:!0,attrs:{class:"language-lua"}},[a("code",[a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("local")]),s._v(" japi "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" require "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v("'jass.japi'")]),s._v("\n\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("local")]),s._v(" mode "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" japi"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("IsWindowMode")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v("\n\n")])]),s._v(" "),a("div",{staticClass:"line-numbers-wrapper"},[a("span",{staticClass:"line-number"},[s._v("1")]),a("br"),a("span",{staticClass:"line-number"},[s._v("2")]),a("br"),a("span",{staticClass:"line-number"},[s._v("3")]),a("br"),a("span",{staticClass:"line-number"},[s._v("4")]),a("br")])])])}),[],!1,null,null,null);a.default=n.exports}}]); -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/js/12.cfe74fa6.js: -------------------------------------------------------------------------------- 1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[12],{223:function(s,a,t){"use strict";t.r(a);var e=t(2),n=Object(e.a)({},(function(){var s=this,a=s._self._c;return a("ContentSlotsDistributor",{attrs:{"slot-key":s.$parent.slotKey}},[a("h1",{attrs:{id:"获取是否窗口化模式"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#获取是否窗口化模式"}},[s._v("#")]),s._v(" 获取是否窗口化模式")]),s._v(" "),a("div",{staticClass:"language-jass line-numbers-mode"},[a("pre",{pre:!0,attrs:{class:"language-jass"}},[a("code",[a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("function")]),s._v(" IsWindowMode "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("takes")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token builtin"}},[s._v("nothing")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("returns")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token builtin"}},[s._v("boolean")]),s._v("\n")])]),s._v(" "),a("div",{staticClass:"line-numbers-wrapper"},[a("span",{staticClass:"line-number"},[s._v("1")]),a("br")])]),a("h1",{attrs:{id:"描述"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#描述"}},[s._v("#")]),s._v(" 描述")]),s._v(" "),a("p",[s._v("全屏状态下 返回 false\n 窗口化模式 返回 true")]),s._v(" "),a("h1",{attrs:{id:"返回值"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#返回值"}},[s._v("#")]),s._v(" 返回值")]),s._v(" "),a("table",[a("thead",[a("tr",[a("th",[s._v("类型")]),s._v(" "),a("th",[s._v("说明")])])]),s._v(" "),a("tbody",[a("tr",[a("td",[s._v("布尔值")]),s._v(" "),a("td",[s._v("true")])])])]),s._v(" "),a("h1",{attrs:{id:"例子"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#例子"}},[s._v("#")]),s._v(" 例子")]),s._v(" "),a("div",{staticClass:"language-jass line-numbers-mode"},[a("pre",{pre:!0,attrs:{class:"language-jass"}},[a("code",[s._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("local")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token builtin"}},[s._v("boolean")]),s._v(" mode "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" IsWindowMode()\n\n")])]),s._v(" "),a("div",{staticClass:"line-numbers-wrapper"},[a("span",{staticClass:"line-number"},[s._v("1")]),a("br"),a("span",{staticClass:"line-number"},[s._v("2")]),a("br"),a("span",{staticClass:"line-number"},[s._v("3")]),a("br")])]),a("div",{staticClass:"language-lua line-numbers-mode"},[a("pre",{pre:!0,attrs:{class:"language-lua"}},[a("code",[a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("local")]),s._v(" japi "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" require "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v("'jass.japi'")]),s._v("\n\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("local")]),s._v(" mode "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" japi"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("IsWindowMode")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v("\n\n")])]),s._v(" "),a("div",{staticClass:"line-numbers-wrapper"},[a("span",{staticClass:"line-number"},[s._v("1")]),a("br"),a("span",{staticClass:"line-number"},[s._v("2")]),a("br"),a("span",{staticClass:"line-number"},[s._v("3")]),a("br"),a("span",{staticClass:"line-number"},[s._v("4")]),a("br")])])])}),[],!1,null,null,null);a.default=n.exports}}]); -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/js/13.db65f6be.js: -------------------------------------------------------------------------------- 1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[13],{221:function(a,s,t){"use strict";t.r(s);var e=t(2),r=Object(e.a)({},(function(){var a=this,s=a._self._c;return s("ContentSlotsDistributor",{attrs:{"slot-key":a.$parent.slotKey}},[s("h1",{attrs:{id:"获取父控件"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#获取父控件"}},[a._v("#")]),a._v(" 获取父控件")]),a._v(" "),s("div",{staticClass:"language-jass line-numbers-mode"},[s("pre",{pre:!0,attrs:{class:"language-jass"}},[s("code",[s("span",{pre:!0,attrs:{class:"token keyword"}},[a._v("function")]),a._v(" FrameGetParent "),s("span",{pre:!0,attrs:{class:"token keyword"}},[a._v("takes")]),a._v(" "),s("span",{pre:!0,attrs:{class:"token builtin"}},[a._v("integer")]),a._v(" frame "),s("span",{pre:!0,attrs:{class:"token keyword"}},[a._v("returns")]),a._v(" "),s("span",{pre:!0,attrs:{class:"token builtin"}},[a._v("integer")]),a._v("\n")])]),a._v(" "),s("div",{staticClass:"line-numbers-wrapper"},[s("span",{staticClass:"line-number"},[a._v("1")]),s("br")])]),s("h1",{attrs:{id:"描述"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#描述"}},[a._v("#")]),a._v(" 描述")]),a._v(" "),s("p",[a._v("获取指定 frame 的父控件 不能对 simple 类型的控件使用\n可以获取 大头像模型 的父控件 然后为其新建子控件 用来放置在所有界面之下")]),a._v(" "),s("h1",{attrs:{id:"参数"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#参数"}},[a._v("#")]),a._v(" 参数")]),a._v(" "),s("table",[s("thead",[s("tr",[s("th",[a._v("类型")]),a._v(" "),s("th",[a._v("名字")]),a._v(" "),s("th",[a._v("说明")])])]),a._v(" "),s("tbody",[s("tr",[s("td",[a._v("整数")]),a._v(" "),s("td",[a._v("frame")]),a._v(" "),s("td",[a._v("控件地址")])])])]),a._v(" "),s("h1",{attrs:{id:"返回值"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#返回值"}},[a._v("#")]),a._v(" 返回值")]),a._v(" "),s("table",[s("thead",[s("tr",[s("th",[a._v("类型")]),a._v(" "),s("th",[a._v("说明")])])]),a._v(" "),s("tbody",[s("tr",[s("td",[a._v("整数")]),a._v(" "),s("td",[a._v("控件地址")])])])]),a._v(" "),s("h1",{attrs:{id:"例子"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#例子"}},[a._v("#")]),a._v(" 例子")]),a._v(" "),s("div",{staticClass:"language-jass line-numbers-mode"},[s("pre",{pre:!0,attrs:{class:"language-jass"}},[s("code",[a._v("\n"),s("span",{pre:!0,attrs:{class:"token keyword"}},[a._v("local")]),a._v(" "),s("span",{pre:!0,attrs:{class:"token builtin"}},[a._v("integer")]),a._v(" parent "),s("span",{pre:!0,attrs:{class:"token operator"}},[a._v("=")]),a._v(" FrameGetParent(frame)\n\n")])]),a._v(" "),s("div",{staticClass:"line-numbers-wrapper"},[s("span",{staticClass:"line-number"},[a._v("1")]),s("br"),s("span",{staticClass:"line-number"},[a._v("2")]),s("br"),s("span",{staticClass:"line-number"},[a._v("3")]),s("br")])]),s("div",{staticClass:"language-lua line-numbers-mode"},[s("pre",{pre:!0,attrs:{class:"language-lua"}},[s("code",[s("span",{pre:!0,attrs:{class:"token keyword"}},[a._v("local")]),a._v(" japi "),s("span",{pre:!0,attrs:{class:"token operator"}},[a._v("=")]),a._v(" require "),s("span",{pre:!0,attrs:{class:"token string"}},[a._v("'jass.japi'")]),a._v("\n\n"),s("span",{pre:!0,attrs:{class:"token keyword"}},[a._v("local")]),a._v(" parent "),s("span",{pre:!0,attrs:{class:"token operator"}},[a._v("=")]),a._v(" japi"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[a._v("FrameGetParent")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("(")]),a._v("frame"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v(")")]),a._v("\n\n")])]),a._v(" "),s("div",{staticClass:"line-numbers-wrapper"},[s("span",{staticClass:"line-number"},[a._v("1")]),s("br"),s("span",{staticClass:"line-number"},[a._v("2")]),s("br"),s("span",{staticClass:"line-number"},[a._v("3")]),s("br"),s("span",{staticClass:"line-number"},[a._v("4")]),s("br")])])])}),[],!1,null,null,null);s.default=r.exports}}]); -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/js/13.facc486f.js: -------------------------------------------------------------------------------- 1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[13],{223:function(a,s,t){"use strict";t.r(s);var e=t(2),r=Object(e.a)({},(function(){var a=this,s=a._self._c;return s("ContentSlotsDistributor",{attrs:{"slot-key":a.$parent.slotKey}},[s("h1",{attrs:{id:"获取父控件"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#获取父控件"}},[a._v("#")]),a._v(" 获取父控件")]),a._v(" "),s("div",{staticClass:"language-jass line-numbers-mode"},[s("pre",{pre:!0,attrs:{class:"language-jass"}},[s("code",[s("span",{pre:!0,attrs:{class:"token keyword"}},[a._v("function")]),a._v(" FrameGetParent "),s("span",{pre:!0,attrs:{class:"token keyword"}},[a._v("takes")]),a._v(" "),s("span",{pre:!0,attrs:{class:"token builtin"}},[a._v("integer")]),a._v(" frame "),s("span",{pre:!0,attrs:{class:"token keyword"}},[a._v("returns")]),a._v(" "),s("span",{pre:!0,attrs:{class:"token builtin"}},[a._v("integer")]),a._v("\n")])]),a._v(" "),s("div",{staticClass:"line-numbers-wrapper"},[s("span",{staticClass:"line-number"},[a._v("1")]),s("br")])]),s("h1",{attrs:{id:"描述"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#描述"}},[a._v("#")]),a._v(" 描述")]),a._v(" "),s("p",[a._v("获取指定 frame 的父控件 不能对 simple 类型的控件使用\n可以获取 大头像模型 的父控件 然后为其新建子控件 用来放置在所有界面之下")]),a._v(" "),s("h1",{attrs:{id:"参数"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#参数"}},[a._v("#")]),a._v(" 参数")]),a._v(" "),s("table",[s("thead",[s("tr",[s("th",[a._v("类型")]),a._v(" "),s("th",[a._v("名字")]),a._v(" "),s("th",[a._v("说明")])])]),a._v(" "),s("tbody",[s("tr",[s("td",[a._v("整数")]),a._v(" "),s("td",[a._v("frame")]),a._v(" "),s("td",[a._v("控件地址")])])])]),a._v(" "),s("h1",{attrs:{id:"返回值"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#返回值"}},[a._v("#")]),a._v(" 返回值")]),a._v(" "),s("table",[s("thead",[s("tr",[s("th",[a._v("类型")]),a._v(" "),s("th",[a._v("说明")])])]),a._v(" "),s("tbody",[s("tr",[s("td",[a._v("整数")]),a._v(" "),s("td",[a._v("控件地址")])])])]),a._v(" "),s("h1",{attrs:{id:"例子"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#例子"}},[a._v("#")]),a._v(" 例子")]),a._v(" "),s("div",{staticClass:"language-jass line-numbers-mode"},[s("pre",{pre:!0,attrs:{class:"language-jass"}},[s("code",[a._v("\n"),s("span",{pre:!0,attrs:{class:"token keyword"}},[a._v("local")]),a._v(" "),s("span",{pre:!0,attrs:{class:"token builtin"}},[a._v("integer")]),a._v(" parent "),s("span",{pre:!0,attrs:{class:"token operator"}},[a._v("=")]),a._v(" FrameGetParent(frame)\n\n")])]),a._v(" "),s("div",{staticClass:"line-numbers-wrapper"},[s("span",{staticClass:"line-number"},[a._v("1")]),s("br"),s("span",{staticClass:"line-number"},[a._v("2")]),s("br"),s("span",{staticClass:"line-number"},[a._v("3")]),s("br")])]),s("div",{staticClass:"language-lua line-numbers-mode"},[s("pre",{pre:!0,attrs:{class:"language-lua"}},[s("code",[s("span",{pre:!0,attrs:{class:"token keyword"}},[a._v("local")]),a._v(" japi "),s("span",{pre:!0,attrs:{class:"token operator"}},[a._v("=")]),a._v(" require "),s("span",{pre:!0,attrs:{class:"token string"}},[a._v("'jass.japi'")]),a._v("\n\n"),s("span",{pre:!0,attrs:{class:"token keyword"}},[a._v("local")]),a._v(" parent "),s("span",{pre:!0,attrs:{class:"token operator"}},[a._v("=")]),a._v(" japi"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[a._v("FrameGetParent")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("(")]),a._v("frame"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v(")")]),a._v("\n\n")])]),a._v(" "),s("div",{staticClass:"line-numbers-wrapper"},[s("span",{staticClass:"line-number"},[a._v("1")]),s("br"),s("span",{staticClass:"line-number"},[a._v("2")]),s("br"),s("span",{staticClass:"line-number"},[a._v("3")]),s("br"),s("span",{staticClass:"line-number"},[a._v("4")]),s("br")])])])}),[],!1,null,null,null);s.default=r.exports}}]); -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/js/14.1c76fe22.js: -------------------------------------------------------------------------------- 1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[14],{219:function(s,a,t){"use strict";t.r(a);var e=t(2),n=Object(e.a)({},(function(){var s=this,a=s._self._c;return a("ContentSlotsDistributor",{attrs:{"slot-key":s.$parent.slotKey}},[a("h1",{attrs:{id:"设置控件视口"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#设置控件视口"}},[s._v("#")]),s._v(" 设置控件视口")]),s._v(" "),a("div",{staticClass:"language-jass line-numbers-mode"},[a("pre",{pre:!0,attrs:{class:"language-jass"}},[a("code",[a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("function")]),s._v(" FrameSetViewPort "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("takes")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token builtin"}},[s._v("integer")]),s._v(" frame, "),a("span",{pre:!0,attrs:{class:"token builtin"}},[s._v("boolean")]),s._v(" enable "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("returns")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token builtin"}},[s._v("nothing")]),s._v("\n\n")])]),s._v(" "),a("div",{staticClass:"line-numbers-wrapper"},[a("span",{staticClass:"line-number"},[s._v("1")]),a("br"),a("span",{staticClass:"line-number"},[s._v("2")]),a("br")])]),a("h1",{attrs:{id:"描述"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#描述"}},[s._v("#")]),s._v(" 描述")]),s._v(" "),a("p",[s._v("设置开启 设置控件视口 比如 底板开启后 他的子控件 在边缘 超出部分不会渲染")]),s._v(" "),a("h1",{attrs:{id:"参数"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#参数"}},[s._v("#")]),s._v(" 参数")]),s._v(" "),a("table",[a("thead",[a("tr",[a("th",[s._v("类型")]),s._v(" "),a("th",[s._v("名字")]),s._v(" "),a("th",[s._v("说明")])])]),s._v(" "),a("tbody",[a("tr",[a("td",[s._v("整数")]),s._v(" "),a("td",[s._v("frame")]),s._v(" "),a("td",[s._v("控件地址")])])])]),s._v(" "),a("h1",{attrs:{id:"例子"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#例子"}},[s._v("#")]),s._v(" 例子")]),s._v(" "),a("div",{staticClass:"language-jass line-numbers-mode"},[a("pre",{pre:!0,attrs:{class:"language-jass"}},[a("code",[s._v("\n\nFrameSetViewPort(frame, "),a("span",{pre:!0,attrs:{class:"token boolean"}},[s._v("true")]),s._v(")\n\n")])]),s._v(" "),a("div",{staticClass:"line-numbers-wrapper"},[a("span",{staticClass:"line-number"},[s._v("1")]),a("br"),a("span",{staticClass:"line-number"},[s._v("2")]),a("br"),a("span",{staticClass:"line-number"},[s._v("3")]),a("br"),a("span",{staticClass:"line-number"},[s._v("4")]),a("br")])]),a("div",{staticClass:"language-lua line-numbers-mode"},[a("pre",{pre:!0,attrs:{class:"language-lua"}},[a("code",[s._v("\npanel"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(":")]),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("set_view_port")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("true")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v("\n\n\n")])]),s._v(" "),a("div",{staticClass:"line-numbers-wrapper"},[a("span",{staticClass:"line-number"},[s._v("1")]),a("br"),a("span",{staticClass:"line-number"},[s._v("2")]),a("br"),a("span",{staticClass:"line-number"},[s._v("3")]),a("br"),a("span",{staticClass:"line-number"},[s._v("4")]),a("br")])])])}),[],!1,null,null,null);a.default=n.exports}}]); -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/js/14.da272856.js: -------------------------------------------------------------------------------- 1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[14],{221:function(s,a,t){"use strict";t.r(a);var e=t(2),n=Object(e.a)({},(function(){var s=this,a=s._self._c;return a("ContentSlotsDistributor",{attrs:{"slot-key":s.$parent.slotKey}},[a("h1",{attrs:{id:"设置控件视口"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#设置控件视口"}},[s._v("#")]),s._v(" 设置控件视口")]),s._v(" "),a("div",{staticClass:"language-jass line-numbers-mode"},[a("pre",{pre:!0,attrs:{class:"language-jass"}},[a("code",[a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("function")]),s._v(" FrameSetViewPort "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("takes")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token builtin"}},[s._v("integer")]),s._v(" frame, "),a("span",{pre:!0,attrs:{class:"token builtin"}},[s._v("boolean")]),s._v(" enable "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("returns")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token builtin"}},[s._v("nothing")]),s._v("\n\n")])]),s._v(" "),a("div",{staticClass:"line-numbers-wrapper"},[a("span",{staticClass:"line-number"},[s._v("1")]),a("br"),a("span",{staticClass:"line-number"},[s._v("2")]),a("br")])]),a("h1",{attrs:{id:"描述"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#描述"}},[s._v("#")]),s._v(" 描述")]),s._v(" "),a("p",[s._v("设置开启 设置控件视口 比如 底板开启后 他的子控件 在边缘 超出部分不会渲染")]),s._v(" "),a("h1",{attrs:{id:"参数"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#参数"}},[s._v("#")]),s._v(" 参数")]),s._v(" "),a("table",[a("thead",[a("tr",[a("th",[s._v("类型")]),s._v(" "),a("th",[s._v("名字")]),s._v(" "),a("th",[s._v("说明")])])]),s._v(" "),a("tbody",[a("tr",[a("td",[s._v("整数")]),s._v(" "),a("td",[s._v("frame")]),s._v(" "),a("td",[s._v("控件地址")])])])]),s._v(" "),a("h1",{attrs:{id:"例子"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#例子"}},[s._v("#")]),s._v(" 例子")]),s._v(" "),a("div",{staticClass:"language-jass line-numbers-mode"},[a("pre",{pre:!0,attrs:{class:"language-jass"}},[a("code",[s._v("\n\nFrameSetViewPort(frame, "),a("span",{pre:!0,attrs:{class:"token boolean"}},[s._v("true")]),s._v(")\n\n")])]),s._v(" "),a("div",{staticClass:"line-numbers-wrapper"},[a("span",{staticClass:"line-number"},[s._v("1")]),a("br"),a("span",{staticClass:"line-number"},[s._v("2")]),a("br"),a("span",{staticClass:"line-number"},[s._v("3")]),a("br"),a("span",{staticClass:"line-number"},[s._v("4")]),a("br")])]),a("div",{staticClass:"language-lua line-numbers-mode"},[a("pre",{pre:!0,attrs:{class:"language-lua"}},[a("code",[s._v("\npanel"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(":")]),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("set_view_port")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("true")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v("\n\n\n")])]),s._v(" "),a("div",{staticClass:"line-numbers-wrapper"},[a("span",{staticClass:"line-number"},[s._v("1")]),a("br"),a("span",{staticClass:"line-number"},[s._v("2")]),a("br"),a("span",{staticClass:"line-number"},[s._v("3")]),a("br"),a("span",{staticClass:"line-number"},[s._v("4")]),a("br")])])])}),[],!1,null,null,null);a.default=n.exports}}]); -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/js/16.02b84527.js: -------------------------------------------------------------------------------- 1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[16],{225:function(t,s,i){"use strict";i.r(s);var o=i(2),n=Object(o.a)({},(function(){var t=this._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":this.$parent.slotKey}},[t("ul",[t("li",[t("RouterLink",{attrs:{to:"/1.46/"}},[t("strong",[this._v("1.46")])]),this._v(" "),t("ul",[t("li",[t("RouterLink",{attrs:{to:"/1.46/绑定特效.html"}},[t("strong",[this._v("绑定特效")])])],1),this._v(" "),t("li",[t("RouterLink",{attrs:{to:"/1.46/解除特效绑定.html"}},[t("strong",[this._v("解除特效绑定")])])],1),this._v(" "),t("li",[t("RouterLink",{attrs:{to:"/1.46/播放特效动画.html"}},[t("strong",[this._v("播放特效动画")])])],1)])],1)])])}),[],!1,null,null,null);s.default=n.exports}}]); -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/js/16.1b57b93d.js: -------------------------------------------------------------------------------- 1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[16],{226:function(t,s,i){"use strict";i.r(s);var o=i(2),n=Object(o.a)({},(function(){var t=this._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":this.$parent.slotKey}},[t("ul",[t("li",[t("RouterLink",{attrs:{to:"/1.46/"}},[t("strong",[this._v("1.46")])]),this._v(" "),t("ul",[t("li",[t("RouterLink",{attrs:{to:"/1.46/绑定特效.html"}},[t("strong",[this._v("绑定特效")])])],1),this._v(" "),t("li",[t("RouterLink",{attrs:{to:"/1.46/解除特效绑定.html"}},[t("strong",[this._v("解除特效绑定")])])],1),this._v(" "),t("li",[t("RouterLink",{attrs:{to:"/1.46/播放特效动画.html"}},[t("strong",[this._v("播放特效动画")])])],1)])],1)])])}),[],!1,null,null,null);s.default=n.exports}}]); -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/js/20.d970efc9.js: -------------------------------------------------------------------------------- 1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[20],{229:function(t,o,r){"use strict";r.r(o);var n=r(2),s=Object(n.a)({},(function(){var t=this,o=t._self._c;return o("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[o("ul",[o("li",[o("RouterLink",{attrs:{to:"/1.47/"}},[o("strong",[t._v("1.47")])]),t._v(" "),o("ul",[o("li",[o("RouterLink",{attrs:{to:"/1.47/获取uid.html"}},[o("strong",[t._v("获取 uid")])])],1),t._v(" "),o("li",[o("RouterLink",{attrs:{to:"/1.47/获取玩家选择单位列表.html"}},[o("strong",[t._v("获取玩家选择单位列表")])])],1),t._v(" "),o("li",[o("RouterLink",{attrs:{to:"/1.47/获取特效颜色.html"}},[o("strong",[t._v("获取特效颜色")])])],1),t._v(" "),o("li",[o("RouterLink",{attrs:{to:"/1.47/粒子缩放.html"}},[o("strong",[t._v("粒子缩放")])])],1),t._v(" "),o("li",[o("RouterLink",{attrs:{to:"/1.47/ui屏幕限制接口.html"}},[o("strong",[t._v("ui 屏幕限制接口")])])],1)])],1)])])}),[],!1,null,null,null);o.default=s.exports}}]); -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/js/21.703c7249.js: -------------------------------------------------------------------------------- 1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[21],{230:function(s,a,t){"use strict";t.r(a);var e=t(2),n=Object(e.a)({},(function(){var s=this,a=s._self._c;return a("ContentSlotsDistributor",{attrs:{"slot-key":s.$parent.slotKey}},[a("h1",{attrs:{id:"ui屏幕限制接口"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#ui屏幕限制接口"}},[s._v("#")]),s._v(" ui 屏幕限制接口")]),s._v(" "),a("div",{staticClass:"language-jass line-numbers-mode"},[a("pre",{pre:!0,attrs:{class:"language-jass"}},[a("code",[a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("function")]),s._v(" SetFrameLimitScreen "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("takes")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token builtin"}},[s._v("boolean")]),s._v(" is_limit "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("returns")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token builtin"}},[s._v("nothing")]),s._v(" \n\n")])]),s._v(" "),a("div",{staticClass:"line-numbers-wrapper"},[a("span",{staticClass:"line-number"},[s._v("1")]),a("br"),a("span",{staticClass:"line-number"},[s._v("2")]),a("br")])]),a("h1",{attrs:{id:"描述"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#描述"}},[s._v("#")]),s._v(" 描述")]),s._v(" "),a("p",[s._v("内置默认是 解锁 frame 控件的 屏幕限制的 就是可以随便移动到屏幕之外的位置, 但是有个别用户 依赖这个限制 用网易的接口写了 ui 导致加了内置之后 位置变了, 故此新增这个接口 自行决定是否解锁。")]),s._v(" "),a("h1",{attrs:{id:"参数"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#参数"}},[s._v("#")]),s._v(" 参数")]),s._v(" "),a("table",[a("thead",[a("tr",[a("th",[s._v("类型")]),s._v(" "),a("th",[s._v("名字")]),s._v(" "),a("th",[s._v("说明")])])]),s._v(" "),a("tbody",[a("tr",[a("td",[s._v("布尔值")]),s._v(" "),a("td",[s._v("is_limit")]),s._v(" "),a("td",[s._v("填 true 是锁定 填 false 是解锁")])])])]),s._v(" "),a("h1",{attrs:{id:"例子"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#例子"}},[s._v("#")]),s._v(" 例子")]),s._v(" "),a("div",{staticClass:"language-jass line-numbers-mode"},[a("pre",{pre:!0,attrs:{class:"language-jass"}},[a("code",[s._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("call")]),s._v(" SetFrameLimitScreen("),a("span",{pre:!0,attrs:{class:"token boolean"}},[s._v("true")]),s._v(") "),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("//重新锁定")]),s._v("\n")])]),s._v(" "),a("div",{staticClass:"line-numbers-wrapper"},[a("span",{staticClass:"line-number"},[s._v("1")]),a("br"),a("span",{staticClass:"line-number"},[s._v("2")]),a("br")])]),a("div",{staticClass:"language-lua line-numbers-mode"},[a("pre",{pre:!0,attrs:{class:"language-lua"}},[a("code",[s._v("\n\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("local")]),s._v(" japi "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" require "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v("'jass.japi'")]),s._v("\n\njapi"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("SetFrameLimitScreen")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("true")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("//")]),s._v("重新锁定\n\n")])]),s._v(" "),a("div",{staticClass:"line-numbers-wrapper"},[a("span",{staticClass:"line-number"},[s._v("1")]),a("br"),a("span",{staticClass:"line-number"},[s._v("2")]),a("br"),a("span",{staticClass:"line-number"},[s._v("3")]),a("br"),a("span",{staticClass:"line-number"},[s._v("4")]),a("br"),a("span",{staticClass:"line-number"},[s._v("5")]),a("br"),a("span",{staticClass:"line-number"},[s._v("6")]),a("br")])])])}),[],!1,null,null,null);a.default=n.exports}}]); -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/js/24.7dbb304c.js: -------------------------------------------------------------------------------- 1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[24],{233:function(s,t,a){"use strict";a.r(t);var e=a(2),r=Object(e.a)({},(function(){var s=this,t=s._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":s.$parent.slotKey}},[t("h1",{attrs:{id:"获取特效颜色"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#获取特效颜色"}},[s._v("#")]),s._v(" 获取特效颜色")]),s._v(" "),t("div",{staticClass:"language-jass line-numbers-mode"},[t("pre",{pre:!0,attrs:{class:"language-jass"}},[t("code",[t("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("function")]),s._v(" EXGetEffectColor "),t("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("takes")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token builtin"}},[s._v("effect")]),s._v(" effect_handle "),t("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("returns")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token builtin"}},[s._v("integer")]),s._v("\n\n")])]),s._v(" "),t("div",{staticClass:"line-numbers-wrapper"},[t("span",{staticClass:"line-number"},[s._v("1")]),t("br"),t("span",{staticClass:"line-number"},[s._v("2")]),t("br")])]),t("h1",{attrs:{id:"描述"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#描述"}},[s._v("#")]),s._v(" 描述")]),s._v(" "),t("p",[s._v("获取特效的颜色 跟 "),t("a",{attrs:{href:"/Japi/%E8%AE%BE%E7%BD%AE%E7%89%B9%E6%95%88%E9%A2%9C%E8%89%B2"}},[s._v("设置特效颜色")]),s._v(" 配合使用")]),s._v(" "),t("h1",{attrs:{id:"参数"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#参数"}},[s._v("#")]),s._v(" 参数")]),s._v(" "),t("table",[t("thead",[t("tr",[t("th",[s._v("类型")]),s._v(" "),t("th",[s._v("名字")]),s._v(" "),t("th",[s._v("说明")])])]),s._v(" "),t("tbody",[t("tr",[t("td",[s._v("特效")]),s._v(" "),t("td",[s._v("handle")]),s._v(" "),t("td",[s._v("句柄")])])])]),s._v(" "),t("h1",{attrs:{id:"返回值"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#返回值"}},[s._v("#")]),s._v(" 返回值")]),s._v(" "),t("table",[t("thead",[t("tr",[t("th",[s._v("类型")]),s._v(" "),t("th",[s._v("说明")])])]),s._v(" "),t("tbody",[t("tr",[t("td",[s._v("integer")]),s._v(" "),t("td",[s._v("颜色的 16 进制 ARGB")])])])]),s._v(" "),t("h1",{attrs:{id:"例子"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#例子"}},[s._v("#")]),s._v(" 例子")]),s._v(" "),t("div",{staticClass:"language-jass line-numbers-mode"},[t("pre",{pre:!0,attrs:{class:"language-jass"}},[t("code",[s._v("\n"),t("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("local")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token builtin"}},[s._v("integer")]),s._v(" color "),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" EXGetEffectColor()\n\n")])]),s._v(" "),t("div",{staticClass:"line-numbers-wrapper"},[t("span",{staticClass:"line-number"},[s._v("1")]),t("br"),t("span",{staticClass:"line-number"},[s._v("2")]),t("br"),t("span",{staticClass:"line-number"},[s._v("3")]),t("br")])]),t("div",{staticClass:"language-lua line-numbers-mode"},[t("pre",{pre:!0,attrs:{class:"language-lua"}},[t("code",[s._v("\n\n"),t("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("local")]),s._v(" japi "),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" require "),t("span",{pre:!0,attrs:{class:"token string"}},[s._v("'jass.japi'")]),s._v("\n\n"),t("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("local")]),s._v(" color "),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" japi"),t("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(".")]),t("span",{pre:!0,attrs:{class:"token function"}},[s._v("EXGetEffectColor")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v("\n\n")])]),s._v(" "),t("div",{staticClass:"line-numbers-wrapper"},[t("span",{staticClass:"line-number"},[s._v("1")]),t("br"),t("span",{staticClass:"line-number"},[s._v("2")]),t("br"),t("span",{staticClass:"line-number"},[s._v("3")]),t("br"),t("span",{staticClass:"line-number"},[s._v("4")]),t("br"),t("span",{staticClass:"line-number"},[s._v("5")]),t("br"),t("span",{staticClass:"line-number"},[s._v("6")]),t("br")])])])}),[],!1,null,null,null);t.default=r.exports}}]); -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/js/24.afd2fc94.js: -------------------------------------------------------------------------------- 1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[24],{232:function(s,t,a){"use strict";a.r(t);var e=a(2),r=Object(e.a)({},(function(){var s=this,t=s._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":s.$parent.slotKey}},[t("h1",{attrs:{id:"获取特效颜色"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#获取特效颜色"}},[s._v("#")]),s._v(" 获取特效颜色")]),s._v(" "),t("div",{staticClass:"language-jass line-numbers-mode"},[t("pre",{pre:!0,attrs:{class:"language-jass"}},[t("code",[t("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("function")]),s._v(" EXGetEffectColor "),t("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("takes")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token builtin"}},[s._v("effect")]),s._v(" effect_handle "),t("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("returns")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token builtin"}},[s._v("integer")]),s._v("\n\n")])]),s._v(" "),t("div",{staticClass:"line-numbers-wrapper"},[t("span",{staticClass:"line-number"},[s._v("1")]),t("br"),t("span",{staticClass:"line-number"},[s._v("2")]),t("br")])]),t("h1",{attrs:{id:"描述"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#描述"}},[s._v("#")]),s._v(" 描述")]),s._v(" "),t("p",[s._v("获取特效的颜色 跟 "),t("a",{attrs:{href:"/Japi/%E8%AE%BE%E7%BD%AE%E7%89%B9%E6%95%88%E9%A2%9C%E8%89%B2"}},[s._v("设置特效颜色")]),s._v(" 配合使用")]),s._v(" "),t("h1",{attrs:{id:"参数"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#参数"}},[s._v("#")]),s._v(" 参数")]),s._v(" "),t("table",[t("thead",[t("tr",[t("th",[s._v("类型")]),s._v(" "),t("th",[s._v("名字")]),s._v(" "),t("th",[s._v("说明")])])]),s._v(" "),t("tbody",[t("tr",[t("td",[s._v("特效")]),s._v(" "),t("td",[s._v("handle")]),s._v(" "),t("td",[s._v("句柄")])])])]),s._v(" "),t("h1",{attrs:{id:"返回值"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#返回值"}},[s._v("#")]),s._v(" 返回值")]),s._v(" "),t("table",[t("thead",[t("tr",[t("th",[s._v("类型")]),s._v(" "),t("th",[s._v("说明")])])]),s._v(" "),t("tbody",[t("tr",[t("td",[s._v("integer")]),s._v(" "),t("td",[s._v("颜色的 16 进制 ARGB")])])])]),s._v(" "),t("h1",{attrs:{id:"例子"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#例子"}},[s._v("#")]),s._v(" 例子")]),s._v(" "),t("div",{staticClass:"language-jass line-numbers-mode"},[t("pre",{pre:!0,attrs:{class:"language-jass"}},[t("code",[s._v("\n"),t("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("local")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token builtin"}},[s._v("integer")]),s._v(" color "),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" EXGetEffectColor()\n\n")])]),s._v(" "),t("div",{staticClass:"line-numbers-wrapper"},[t("span",{staticClass:"line-number"},[s._v("1")]),t("br"),t("span",{staticClass:"line-number"},[s._v("2")]),t("br"),t("span",{staticClass:"line-number"},[s._v("3")]),t("br")])]),t("div",{staticClass:"language-lua line-numbers-mode"},[t("pre",{pre:!0,attrs:{class:"language-lua"}},[t("code",[s._v("\n\n"),t("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("local")]),s._v(" japi "),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" require "),t("span",{pre:!0,attrs:{class:"token string"}},[s._v("'jass.japi'")]),s._v("\n\n"),t("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("local")]),s._v(" color "),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" japi"),t("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(".")]),t("span",{pre:!0,attrs:{class:"token function"}},[s._v("EXGetEffectColor")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v("\n\n")])]),s._v(" "),t("div",{staticClass:"line-numbers-wrapper"},[t("span",{staticClass:"line-number"},[s._v("1")]),t("br"),t("span",{staticClass:"line-number"},[s._v("2")]),t("br"),t("span",{staticClass:"line-number"},[s._v("3")]),t("br"),t("span",{staticClass:"line-number"},[s._v("4")]),t("br"),t("span",{staticClass:"line-number"},[s._v("5")]),t("br"),t("span",{staticClass:"line-number"},[s._v("6")]),t("br")])])])}),[],!1,null,null,null);t.default=r.exports}}]); -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/js/26.33e33fe2.js: -------------------------------------------------------------------------------- 1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[26],{235:function(t,n,o){"use strict";o.r(n);var r=o(2),l=Object(r.a)({},(function(){var t=this,n=t._self._c;return n("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[n("ul",[n("li",[n("RouterLink",{attrs:{to:"/1.48/"}},[n("strong",[t._v("1.48")])]),t._v(" "),n("ul",[n("li",[n("RouterLink",{attrs:{to:"/1.48/修改单位移动类型.html"}},[n("strong",[t._v("修改单位移动类型")])])],1),t._v(" "),n("li",[n("RouterLink",{attrs:{to:"/1.48/修改单位碰撞体积大小.html"}},[n("strong",[t._v("修改单位碰撞体积大小")])])],1),t._v(" "),n("li",[n("RouterLink",{attrs:{to:"/1.48/获取物品技能handle.html"}},[n("strong",[t._v("获取物品技能 handle")])])],1),t._v(" "),n("li",[n("RouterLink",{attrs:{to:"/1.48/新增ui接口.html"}},[n("strong",[t._v("新增 ui 接口")])])],1)])],1)])])}),[],!1,null,null,null);n.default=l.exports}}]); -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/js/26.c7f961a3.js: -------------------------------------------------------------------------------- 1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[26],{234:function(t,n,o){"use strict";o.r(n);var r=o(2),l=Object(r.a)({},(function(){var t=this,n=t._self._c;return n("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[n("ul",[n("li",[n("RouterLink",{attrs:{to:"/1.48/"}},[n("strong",[t._v("1.48")])]),t._v(" "),n("ul",[n("li",[n("RouterLink",{attrs:{to:"/1.48/修改单位移动类型.html"}},[n("strong",[t._v("修改单位移动类型")])])],1),t._v(" "),n("li",[n("RouterLink",{attrs:{to:"/1.48/修改单位碰撞体积大小.html"}},[n("strong",[t._v("修改单位碰撞体积大小")])])],1),t._v(" "),n("li",[n("RouterLink",{attrs:{to:"/1.48/获取物品技能handle.html"}},[n("strong",[t._v("获取物品技能 handle")])])],1),t._v(" "),n("li",[n("RouterLink",{attrs:{to:"/1.48/新增ui接口.html"}},[n("strong",[t._v("新增 ui 接口")])])],1)])],1)])])}),[],!1,null,null,null);n.default=l.exports}}]); -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/js/3.45bce87d.js: -------------------------------------------------------------------------------- 1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[3],{158:function(t,n,e){},159:function(t,n,e){},160:function(t,n,e){},161:function(t,n,e){},162:function(t,n,e){},163:function(t,n,e){},164:function(t,n,e){"use strict";e(158)},165:function(t,n,e){"use strict";e(159)},166:function(t,n,e){"use strict";e(160)},167:function(t,n,e){"use strict";e(161)},168:function(t,n,e){"use strict";e(162)},169:function(t,n,e){"use strict";e(163)},214:function(t,n,e){"use strict";e.r(n);const o=["There's nothing here.","How did we get here?","That's a Four-Oh-Four.","Looks like we've got some broken links."];var s={methods:{getMsg:()=>o[Math.floor(Math.random()*o.length)]}},i=e(2),u={name:"NotFound",components:{ParentLayout:Object(i.a)(s,(function(){var t=this._self._c;return t("div",{staticClass:"theme-container"},[t("div",{staticClass:"theme-default-content"},[t("h1",[this._v("404")]),this._v(" "),t("blockquote",[this._v(this._s(this.getMsg()))]),this._v(" "),t("RouterLink",{attrs:{to:"/"}},[this._v("\n Take me home.\n ")])],1)])}),[],!1,null,null,null).exports}},c=(e(164),e(165),e(166),e(167),e(168),e(169),Object(i.a)(u,(function(){return(0,this._self._c)("parent-layout")}),[],!1,null,null,null));n.default=c.exports}}]); -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/js/30.af449c37.js: -------------------------------------------------------------------------------- 1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[30],{239:function(t,a,s){"use strict";s.r(a);var e=s(2),r=Object(e.a)({},(function(){var t=this,a=t._self._c;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"获取物品技能-handle"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#获取物品技能-handle"}},[t._v("#")]),t._v(" 获取物品技能 handle")]),t._v(" "),a("div",{staticClass:"language-jass line-numbers-mode"},[a("pre",{pre:!0,attrs:{class:"language-jass"}},[a("code",[a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),t._v(" GetItemAbility "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("takes")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token builtin"}},[t._v("item")]),t._v(" Item, "),a("span",{pre:!0,attrs:{class:"token builtin"}},[t._v("integer")]),t._v(" slot "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("returns")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token builtin"}},[t._v("ability")]),t._v("\n\n")])]),t._v(" "),a("div",{staticClass:"line-numbers-wrapper"},[a("span",{staticClass:"line-number"},[t._v("1")]),a("br"),a("span",{staticClass:"line-number"},[t._v("2")]),a("br")])]),a("h1",{attrs:{id:"描述"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#描述"}},[t._v("#")]),t._v(" 描述")]),t._v(" "),a("p",[t._v("获取物品技能的 handle 返回值 可以用在 ydjapi 的技能接口")]),t._v(" "),a("h1",{attrs:{id:"参数"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#参数"}},[t._v("#")]),t._v(" 参数")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",[t._v("类型")]),t._v(" "),a("th",[t._v("名字")]),t._v(" "),a("th",[t._v("说明")])])]),t._v(" "),a("tbody",[a("tr",[a("td",[t._v("物品")]),t._v(" "),a("td",[t._v("Item")]),t._v(" "),a("td",[t._v("指定物品")])]),t._v(" "),a("tr",[a("td",[t._v("整数")]),t._v(" "),a("td",[t._v("slot")]),t._v(" "),a("td",[t._v("指定槽位 0 从开始")])])])]),t._v(" "),a("h1",{attrs:{id:"返回值"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#返回值"}},[t._v("#")]),t._v(" 返回值")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",[t._v("类型")]),t._v(" "),a("th",[t._v("说明")])])]),t._v(" "),a("tbody",[a("tr",[a("td",[t._v("ability")]),t._v(" "),a("td",[t._v("技能")])])])]),t._v(" "),a("h1",{attrs:{id:"例子"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#例子"}},[t._v("#")]),t._v(" 例子")]),t._v(" "),a("p",[t._v("可以看 "),a("RouterLink",{attrs:{to:"/Script/例子/智能施法.html"}},[a("em",[t._v("智能施法")])]),t._v(" 里面关于这条 api 的应用")],1)])}),[],!1,null,null,null);a.default=r.exports}}]); -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/js/31.df9f78c1.js: -------------------------------------------------------------------------------- 1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[31],{240:function(t,i,s){"use strict";s.r(i);var o=s(2),n=Object(o.a)({},(function(){var t=this._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":this.$parent.slotKey}},[t("ul",[t("li",[t("RouterLink",{attrs:{to:"/1.49/"}},[t("strong",[this._v("1.49")])]),this._v(" "),t("ul",[t("li",[t("RouterLink",{attrs:{to:"/1.49/物品japi.html"}},[t("strong",[this._v("物品 japi")])])],1),this._v(" "),t("li",[t("RouterLink",{attrs:{to:"/1.49/装饰物japi.html"}},[t("strong",[this._v("装饰物 japi")])])],1),this._v(" "),t("li",[t("RouterLink",{attrs:{to:"/1.49/技能japi.html"}},[t("strong",[this._v("技能 japi")])])],1)])],1)])])}),[],!1,null,null,null);i.default=n.exports}}]); -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/js/35.31f45288.js: -------------------------------------------------------------------------------- 1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[35],{243:function(t,o,r){"use strict";r.r(o);var i=r(2),n=Object(i.a)({},(function(){var t=this,o=t._self._c;return o("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[o("ul",[o("li",[o("p",[o("RouterLink",{attrs:{to:"/Japi/"}},[o("strong",[t._v("Japi")])])],1),t._v(" "),o("ul",[o("li",[o("p",[o("RouterLink",{attrs:{to:"/Japi/获取当前选择单位.html"}},[o("strong",[t._v("获取当前选择单位")])])],1)]),t._v(" "),o("li",[o("p",[o("RouterLink",{attrs:{to:"/Japi/获取当前指向单位.html"}},[o("strong",[t._v("获取当前指向单位")])])],1)]),t._v(" "),o("li",[o("p",[o("RouterLink",{attrs:{to:"/Japi/设置单位模型.html"}},[o("strong",[t._v("设置单位模型")])])],1)]),t._v(" "),o("li",[o("p",[o("RouterLink",{attrs:{to:"/Japi/设置单位头像模型.html"}},[o("strong",[t._v("设置单位头像模型")])])],1)]),t._v(" "),o("li",[o("p",[o("RouterLink",{attrs:{to:"/Japi/设置单位名字.html"}},[o("strong",[t._v("设置单位名字")])])],1)]),t._v(" "),o("li",[o("p",[o("RouterLink",{attrs:{to:"/Japi/设置英雄称谓.html"}},[o("strong",[t._v("设置英雄称谓")])])],1)]),t._v(" "),o("li",[o("p",[o("RouterLink",{attrs:{to:"/Japi/设置单位普攻弹道模型.html"}},[o("strong",[t._v("设置单位普攻弹道模型")])])],1)]),t._v(" "),o("li",[o("p",[o("RouterLink",{attrs:{to:"/Japi/设置单位普攻弹道弧度.html"}},[o("strong",[t._v("设置单位普攻弹道弧度")])])],1)]),t._v(" "),o("li",[o("p",[o("RouterLink",{attrs:{to:"/Japi/设置单位普攻弹道速度.html"}},[o("strong",[t._v("设置单位普攻弹道速度")])])],1)]),t._v(" "),o("li",[o("p",[o("RouterLink",{attrs:{to:"/Japi/设置单位普攻弹道自导允许.html"}},[o("strong",[t._v("设置单位普攻弹道自导允许")])])],1)]),t._v(" "),o("li",[o("p",[o("RouterLink",{attrs:{to:"/Japi/设置单位贴图.html"}},[o("strong",[t._v("设置单位贴图")])])],1)]),t._v(" "),o("li",[o("p",[o("RouterLink",{attrs:{to:"/Japi/设置特效动画.html"}},[o("strong",[t._v("设置特效动画")])])],1)]),t._v(" "),o("li",[o("p",[o("RouterLink",{attrs:{to:"/Japi/设置特效颜色.html"}},[o("strong",[t._v("设置特效颜色")])])],1)]),t._v(" "),o("li",[o("p",[o("RouterLink",{attrs:{to:"/Japi/设置特效坐标.html"}},[o("strong",[t._v("设置特效坐标")])])],1)]),t._v(" "),o("li",[o("p",[o("RouterLink",{attrs:{to:"/Japi/设置特效显示.html"}},[o("strong",[t._v("设置特效显示")])])],1)]),t._v(" "),o("li",[o("p",[o("RouterLink",{attrs:{to:"/Japi/显示FPS文本.html"}},[o("strong",[t._v("显示 FPS 文本")])])],1)]),t._v(" "),o("li",[o("p",[o("RouterLink",{attrs:{to:"/Japi/获取FPS帧数.html"}},[o("strong",[t._v("获取 FPS 帧数")])])],1)]),t._v(" "),o("li",[o("p",[o("RouterLink",{attrs:{to:"/Japi/解锁FPS帧数上限.html"}},[o("strong",[t._v("解锁 FPS 帧数上限")])])],1)]),t._v(" "),o("li",[o("p",[o("RouterLink",{attrs:{to:"/Japi/解锁BLP像素限制.html"}},[o("strong",[t._v("解锁 BLP 像素限制")])])],1)]),t._v(" "),o("li",[o("p",[o("RouterLink",{attrs:{to:"/Japi/清除模型内存缓存.html"}},[o("strong",[t._v("清除模型内存缓存")])])],1)]),t._v(" "),o("li",[o("p",[o("RouterLink",{attrs:{to:"/Japi/清除字符串内存缓存.html"}},[o("strong",[t._v("清除字符串内存缓存")])])],1)]),t._v(" "),o("li",[o("p",[o("RouterLink",{attrs:{to:"/Japi/获取聊天框是否打开.html"}},[o("strong",[t._v("获取聊天框是否打开")])])],1)]),t._v(" "),o("li",[o("p",[o("RouterLink",{attrs:{to:"/Japi/设置单位&物品鼠标指向UI跟血条是否显示.html"}},[o("strong",[t._v("设置单位 & 物品鼠标指向 UI 跟血条是否显示")])])],1)])])])])])}),[],!1,null,null,null);o.default=n.exports}}]); -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/js/35.35abb707.js: -------------------------------------------------------------------------------- 1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[35],{245:function(t,o,r){"use strict";r.r(o);var i=r(2),n=Object(i.a)({},(function(){var t=this,o=t._self._c;return o("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[o("ul",[o("li",[o("p",[o("RouterLink",{attrs:{to:"/Japi/"}},[o("strong",[t._v("Japi")])])],1),t._v(" "),o("ul",[o("li",[o("p",[o("RouterLink",{attrs:{to:"/Japi/获取当前选择单位.html"}},[o("strong",[t._v("获取当前选择单位")])])],1)]),t._v(" "),o("li",[o("p",[o("RouterLink",{attrs:{to:"/Japi/获取当前指向单位.html"}},[o("strong",[t._v("获取当前指向单位")])])],1)]),t._v(" "),o("li",[o("p",[o("RouterLink",{attrs:{to:"/Japi/设置单位模型.html"}},[o("strong",[t._v("设置单位模型")])])],1)]),t._v(" "),o("li",[o("p",[o("RouterLink",{attrs:{to:"/Japi/设置单位头像模型.html"}},[o("strong",[t._v("设置单位头像模型")])])],1)]),t._v(" "),o("li",[o("p",[o("RouterLink",{attrs:{to:"/Japi/设置单位名字.html"}},[o("strong",[t._v("设置单位名字")])])],1)]),t._v(" "),o("li",[o("p",[o("RouterLink",{attrs:{to:"/Japi/设置英雄称谓.html"}},[o("strong",[t._v("设置英雄称谓")])])],1)]),t._v(" "),o("li",[o("p",[o("RouterLink",{attrs:{to:"/Japi/设置单位普攻弹道模型.html"}},[o("strong",[t._v("设置单位普攻弹道模型")])])],1)]),t._v(" "),o("li",[o("p",[o("RouterLink",{attrs:{to:"/Japi/设置单位普攻弹道弧度.html"}},[o("strong",[t._v("设置单位普攻弹道弧度")])])],1)]),t._v(" "),o("li",[o("p",[o("RouterLink",{attrs:{to:"/Japi/设置单位普攻弹道速度.html"}},[o("strong",[t._v("设置单位普攻弹道速度")])])],1)]),t._v(" "),o("li",[o("p",[o("RouterLink",{attrs:{to:"/Japi/设置单位普攻弹道自导允许.html"}},[o("strong",[t._v("设置单位普攻弹道自导允许")])])],1)]),t._v(" "),o("li",[o("p",[o("RouterLink",{attrs:{to:"/Japi/设置单位贴图.html"}},[o("strong",[t._v("设置单位贴图")])])],1)]),t._v(" "),o("li",[o("p",[o("RouterLink",{attrs:{to:"/Japi/设置特效动画.html"}},[o("strong",[t._v("设置特效动画")])])],1)]),t._v(" "),o("li",[o("p",[o("RouterLink",{attrs:{to:"/Japi/设置特效颜色.html"}},[o("strong",[t._v("设置特效颜色")])])],1)]),t._v(" "),o("li",[o("p",[o("RouterLink",{attrs:{to:"/Japi/设置特效坐标.html"}},[o("strong",[t._v("设置特效坐标")])])],1)]),t._v(" "),o("li",[o("p",[o("RouterLink",{attrs:{to:"/Japi/设置特效显示.html"}},[o("strong",[t._v("设置特效显示")])])],1)]),t._v(" "),o("li",[o("p",[o("RouterLink",{attrs:{to:"/Japi/显示FPS文本.html"}},[o("strong",[t._v("显示 FPS 文本")])])],1)]),t._v(" "),o("li",[o("p",[o("RouterLink",{attrs:{to:"/Japi/获取FPS帧数.html"}},[o("strong",[t._v("获取 FPS 帧数")])])],1)]),t._v(" "),o("li",[o("p",[o("RouterLink",{attrs:{to:"/Japi/解锁FPS帧数上限.html"}},[o("strong",[t._v("解锁 FPS 帧数上限")])])],1)]),t._v(" "),o("li",[o("p",[o("RouterLink",{attrs:{to:"/Japi/解锁BLP像素限制.html"}},[o("strong",[t._v("解锁 BLP 像素限制")])])],1)]),t._v(" "),o("li",[o("p",[o("RouterLink",{attrs:{to:"/Japi/清除模型内存缓存.html"}},[o("strong",[t._v("清除模型内存缓存")])])],1)]),t._v(" "),o("li",[o("p",[o("RouterLink",{attrs:{to:"/Japi/清除字符串内存缓存.html"}},[o("strong",[t._v("清除字符串内存缓存")])])],1)]),t._v(" "),o("li",[o("p",[o("RouterLink",{attrs:{to:"/Japi/获取聊天框是否打开.html"}},[o("strong",[t._v("获取聊天框是否打开")])])],1)]),t._v(" "),o("li",[o("p",[o("RouterLink",{attrs:{to:"/Japi/设置单位&物品鼠标指向UI跟血条是否显示.html"}},[o("strong",[t._v("设置单位 & 物品鼠标指向 UI 跟血条是否显示")])])],1)])])])])])}),[],!1,null,null,null);o.default=n.exports}}]); -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/js/36.91221393.js: -------------------------------------------------------------------------------- 1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[36],{244:function(s,a,t){"use strict";t.r(a);var e=t(2),r=Object(e.a)({},(function(){var s=this,a=s._self._c;return a("ContentSlotsDistributor",{attrs:{"slot-key":s.$parent.slotKey}},[a("h1",{attrs:{id:"显示fps文本"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#显示fps文本"}},[s._v("#")]),s._v(" 显示 FPS 文本")]),s._v(" "),a("div",{staticClass:"language-jass line-numbers-mode"},[a("pre",{pre:!0,attrs:{class:"language-jass"}},[a("code",[a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("function")]),s._v(" ShowFpsText "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("takes")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token builtin"}},[s._v("boolean")]),s._v(" show "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("returns")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token builtin"}},[s._v("nothing")]),s._v("\n")])]),s._v(" "),a("div",{staticClass:"line-numbers-wrapper"},[a("span",{staticClass:"line-number"},[s._v("1")]),a("br")])]),a("h1",{attrs:{id:"描述"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#描述"}},[s._v("#")]),s._v(" 描述")]),s._v(" "),a("p",[s._v("显示屏幕中间的 FPS 文本")]),s._v(" "),a("h1",{attrs:{id:"参数"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#参数"}},[s._v("#")]),s._v(" 参数")]),s._v(" "),a("table",[a("thead",[a("tr",[a("th",[s._v("类型")]),s._v(" "),a("th",[s._v("名字")]),s._v(" "),a("th",[s._v("说明")])])]),s._v(" "),a("tbody",[a("tr",[a("td",[s._v("布尔值")]),s._v(" "),a("td",[s._v("show")]),s._v(" "),a("td",[s._v("是否显示")])])])]),s._v(" "),a("h1",{attrs:{id:"例子"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#例子"}},[s._v("#")]),s._v(" 例子")]),s._v(" "),a("div",{staticClass:"language-jass line-numbers-mode"},[a("pre",{pre:!0,attrs:{class:"language-jass"}},[a("code",[a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("call")]),s._v(" ShowFpsText("),a("span",{pre:!0,attrs:{class:"token boolean"}},[s._v("true")]),s._v(")\n")])]),s._v(" "),a("div",{staticClass:"line-numbers-wrapper"},[a("span",{staticClass:"line-number"},[s._v("1")]),a("br")])]),a("div",{staticClass:"language-lua line-numbers-mode"},[a("pre",{pre:!0,attrs:{class:"language-lua"}},[a("code",[a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("local")]),s._v(" japi "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" require "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v("'jass.japi'")]),s._v("\n\njapi"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("ShowFpsText")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("true")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v("\n\n")])]),s._v(" "),a("div",{staticClass:"line-numbers-wrapper"},[a("span",{staticClass:"line-number"},[s._v("1")]),a("br"),a("span",{staticClass:"line-number"},[s._v("2")]),a("br"),a("span",{staticClass:"line-number"},[s._v("3")]),a("br"),a("span",{staticClass:"line-number"},[s._v("4")]),a("br")])])])}),[],!1,null,null,null);a.default=r.exports}}]); -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/js/39.2acd0029.js: -------------------------------------------------------------------------------- 1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[39],{248:function(s,a,t){"use strict";t.r(a);var e=t(2),r=Object(e.a)({},(function(){var s=this,a=s._self._c;return a("ContentSlotsDistributor",{attrs:{"slot-key":s.$parent.slotKey}},[a("h1",{attrs:{id:"获取fps帧数"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#获取fps帧数"}},[s._v("#")]),s._v(" 获取 FPS 帧数")]),s._v(" "),a("div",{staticClass:"language-jass line-numbers-mode"},[a("pre",{pre:!0,attrs:{class:"language-jass"}},[a("code",[a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("function")]),s._v(" GetFps "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("takes")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token builtin"}},[s._v("nothing")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("returns")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token builtin"}},[s._v("real")]),s._v("\n")])]),s._v(" "),a("div",{staticClass:"line-numbers-wrapper"},[a("span",{staticClass:"line-number"},[s._v("1")]),a("br")])]),a("h1",{attrs:{id:"描述"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#描述"}},[s._v("#")]),s._v(" 描述")]),s._v(" "),a("p",[s._v("异步获取 玩家当前的帧数"),a("br"),s._v("\n玩家比较卡时 帧数较低 可以异步空特效路径 以及 弹道模型 屏蔽特效来提高帧数。")]),s._v(" "),a("h1",{attrs:{id:"返回值"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#返回值"}},[s._v("#")]),s._v(" 返回值")]),s._v(" "),a("table",[a("thead",[a("tr",[a("th",[s._v("类型")]),s._v(" "),a("th",[s._v("说明")])])]),s._v(" "),a("tbody",[a("tr",[a("td",[s._v("实数")]),s._v(" "),a("td",[s._v("注意返回是异步的切记小心使用")])])])]),s._v(" "),a("h1",{attrs:{id:"例子"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#例子"}},[s._v("#")]),s._v(" 例子")]),s._v(" "),a("div",{staticClass:"language-jass line-numbers-mode"},[a("pre",{pre:!0,attrs:{class:"language-jass"}},[a("code",[s._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("local")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token builtin"}},[s._v("real")]),s._v(" fps "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" GetFps()\n\n")])]),s._v(" "),a("div",{staticClass:"line-numbers-wrapper"},[a("span",{staticClass:"line-number"},[s._v("1")]),a("br"),a("span",{staticClass:"line-number"},[s._v("2")]),a("br"),a("span",{staticClass:"line-number"},[s._v("3")]),a("br")])]),a("div",{staticClass:"language-lua line-numbers-mode"},[a("pre",{pre:!0,attrs:{class:"language-lua"}},[a("code",[a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("local")]),s._v(" japi "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" require "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v("'jass.japi'")]),s._v("\n\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("local")]),s._v(" fps "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" japi"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("GetFps")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v(" \n\n")])]),s._v(" "),a("div",{staticClass:"line-numbers-wrapper"},[a("span",{staticClass:"line-number"},[s._v("1")]),a("br"),a("span",{staticClass:"line-number"},[s._v("2")]),a("br"),a("span",{staticClass:"line-number"},[s._v("3")]),a("br"),a("span",{staticClass:"line-number"},[s._v("4")]),a("br")])])])}),[],!1,null,null,null);a.default=r.exports}}]); -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/js/39.41ebd6a1.js: -------------------------------------------------------------------------------- 1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[39],{247:function(s,a,t){"use strict";t.r(a);var e=t(2),r=Object(e.a)({},(function(){var s=this,a=s._self._c;return a("ContentSlotsDistributor",{attrs:{"slot-key":s.$parent.slotKey}},[a("h1",{attrs:{id:"获取fps帧数"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#获取fps帧数"}},[s._v("#")]),s._v(" 获取 FPS 帧数")]),s._v(" "),a("div",{staticClass:"language-jass line-numbers-mode"},[a("pre",{pre:!0,attrs:{class:"language-jass"}},[a("code",[a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("function")]),s._v(" GetFps "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("takes")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token builtin"}},[s._v("nothing")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("returns")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token builtin"}},[s._v("real")]),s._v("\n")])]),s._v(" "),a("div",{staticClass:"line-numbers-wrapper"},[a("span",{staticClass:"line-number"},[s._v("1")]),a("br")])]),a("h1",{attrs:{id:"描述"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#描述"}},[s._v("#")]),s._v(" 描述")]),s._v(" "),a("p",[s._v("异步获取 玩家当前的帧数"),a("br"),s._v("\n玩家比较卡时 帧数较低 可以异步空特效路径 以及 弹道模型 屏蔽特效来提高帧数。")]),s._v(" "),a("h1",{attrs:{id:"返回值"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#返回值"}},[s._v("#")]),s._v(" 返回值")]),s._v(" "),a("table",[a("thead",[a("tr",[a("th",[s._v("类型")]),s._v(" "),a("th",[s._v("说明")])])]),s._v(" "),a("tbody",[a("tr",[a("td",[s._v("实数")]),s._v(" "),a("td",[s._v("注意返回是异步的切记小心使用")])])])]),s._v(" "),a("h1",{attrs:{id:"例子"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#例子"}},[s._v("#")]),s._v(" 例子")]),s._v(" "),a("div",{staticClass:"language-jass line-numbers-mode"},[a("pre",{pre:!0,attrs:{class:"language-jass"}},[a("code",[s._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("local")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token builtin"}},[s._v("real")]),s._v(" fps "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" GetFps()\n\n")])]),s._v(" "),a("div",{staticClass:"line-numbers-wrapper"},[a("span",{staticClass:"line-number"},[s._v("1")]),a("br"),a("span",{staticClass:"line-number"},[s._v("2")]),a("br"),a("span",{staticClass:"line-number"},[s._v("3")]),a("br")])]),a("div",{staticClass:"language-lua line-numbers-mode"},[a("pre",{pre:!0,attrs:{class:"language-lua"}},[a("code",[a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("local")]),s._v(" japi "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" require "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v("'jass.japi'")]),s._v("\n\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("local")]),s._v(" fps "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" japi"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("GetFps")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v(" \n\n")])]),s._v(" "),a("div",{staticClass:"line-numbers-wrapper"},[a("span",{staticClass:"line-number"},[s._v("1")]),a("br"),a("span",{staticClass:"line-number"},[s._v("2")]),a("br"),a("span",{staticClass:"line-number"},[s._v("3")]),a("br"),a("span",{staticClass:"line-number"},[s._v("4")]),a("br")])])])}),[],!1,null,null,null);a.default=r.exports}}]); -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/js/4.6de145df.js: -------------------------------------------------------------------------------- 1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[4],{186:function(t,e,n){},210:function(t,e,n){"use strict";n(186)},305:function(t,e,n){"use strict";n.r(e);var i={functional:!0,props:{type:{type:String,default:"tip"},text:String,vertical:{type:String,default:"top"}},render:(t,{props:e,slots:n})=>t("span",{class:["badge",e.type],style:{verticalAlign:e.vertical}},e.text||n().default)},p=(n(210),n(2)),l=Object(p.a)(i,void 0,void 0,!1,null,"15b7b770",null);e.default=l.exports}}]); -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/js/4.9537b151.js: -------------------------------------------------------------------------------- 1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[4],{187:function(t,e,n){},211:function(t,e,n){"use strict";n(187)},305:function(t,e,n){"use strict";n.r(e);var i={functional:!0,props:{type:{type:String,default:"tip"},text:String,vertical:{type:String,default:"top"}},render:(t,{props:e,slots:n})=>t("span",{class:["badge",e.type],style:{verticalAlign:e.vertical}},e.text||n().default)},p=(n(211),n(2)),l=Object(p.a)(i,void 0,void 0,!1,null,"15b7b770",null);e.default=l.exports}}]); -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/js/40.991c878c.js: -------------------------------------------------------------------------------- 1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[40],{249:function(s,a,t){"use strict";t.r(a);var e=t(2),n=Object(e.a)({},(function(){var s=this,a=s._self._c;return a("ContentSlotsDistributor",{attrs:{"slot-key":s.$parent.slotKey}},[a("h1",{attrs:{id:"获取当前指向单位"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#获取当前指向单位"}},[s._v("#")]),s._v(" 获取当前指向单位")]),s._v(" "),a("div",{staticClass:"language-jass line-numbers-mode"},[a("pre",{pre:!0,attrs:{class:"language-jass"}},[a("code",[a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("function")]),s._v(" GetTargetObject "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("takes")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token builtin"}},[s._v("nothing")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("returns")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token builtin"}},[s._v("unit")]),s._v("\n")])]),s._v(" "),a("div",{staticClass:"line-numbers-wrapper"},[a("span",{staticClass:"line-number"},[s._v("1")]),a("br")])]),a("h1",{attrs:{id:"描述"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#描述"}},[s._v("#")]),s._v(" 描述")]),s._v(" "),a("p",[s._v("异步获取 获取当前指向单位\n一般用来做 UI 操作时需要用到的接口")]),s._v(" "),a("h1",{attrs:{id:"返回值"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#返回值"}},[s._v("#")]),s._v(" 返回值")]),s._v(" "),a("table",[a("thead",[a("tr",[a("th",[s._v("类型")]),s._v(" "),a("th",[s._v("说明")])])]),s._v(" "),a("tbody",[a("tr",[a("td",[s._v("单位")]),s._v(" "),a("td",[s._v("注意返回是异步的 handle,切记小心使用")])])])]),s._v(" "),a("h1",{attrs:{id:"例子"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#例子"}},[s._v("#")]),s._v(" 例子")]),s._v(" "),a("div",{staticClass:"language-jass line-numbers-mode"},[a("pre",{pre:!0,attrs:{class:"language-jass"}},[a("code",[s._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("local")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token builtin"}},[s._v("unit")]),s._v(" u "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" GetTargetObject()\n\n")])]),s._v(" "),a("div",{staticClass:"line-numbers-wrapper"},[a("span",{staticClass:"line-number"},[s._v("1")]),a("br"),a("span",{staticClass:"line-number"},[s._v("2")]),a("br"),a("span",{staticClass:"line-number"},[s._v("3")]),a("br")])]),a("div",{staticClass:"language-lua line-numbers-mode"},[a("pre",{pre:!0,attrs:{class:"language-lua"}},[a("code",[a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("local")]),s._v(" japi "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" require "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v("'jass.japi'")]),s._v("\n\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("local")]),s._v(" handle "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" japi"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("GetTargetObject")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("--也可获取指向的 物品 可选择的可破坏物时")]),s._v("\n\n")])]),s._v(" "),a("div",{staticClass:"line-numbers-wrapper"},[a("span",{staticClass:"line-number"},[s._v("1")]),a("br"),a("span",{staticClass:"line-number"},[s._v("2")]),a("br"),a("span",{staticClass:"line-number"},[s._v("3")]),a("br"),a("span",{staticClass:"line-number"},[s._v("4")]),a("br")])])])}),[],!1,null,null,null);a.default=n.exports}}]); -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/js/41.6d1b9fd5.js: -------------------------------------------------------------------------------- 1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[41],{250:function(s,a,t){"use strict";t.r(a);var e=t(2),n=Object(e.a)({},(function(){var s=this,a=s._self._c;return a("ContentSlotsDistributor",{attrs:{"slot-key":s.$parent.slotKey}},[a("h1",{attrs:{id:"获取当前选择单位"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#获取当前选择单位"}},[s._v("#")]),s._v(" 获取当前选择单位")]),s._v(" "),a("div",{staticClass:"language-jass line-numbers-mode"},[a("pre",{pre:!0,attrs:{class:"language-jass"}},[a("code",[a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("function")]),s._v(" GetRealSelectUnit "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("takes")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token builtin"}},[s._v("nothing")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("returns")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token builtin"}},[s._v("unit")]),s._v("\n")])]),s._v(" "),a("div",{staticClass:"line-numbers-wrapper"},[a("span",{staticClass:"line-number"},[s._v("1")]),a("br")])]),a("h1",{attrs:{id:"描述"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#描述"}},[s._v("#")]),s._v(" 描述")]),s._v(" "),a("p",[s._v("异步获取 当前玩家大头像模型的单位 当框选一群单位时 切换选择也会改变返回值\n一般用来做 UI 操作时需要用到的接口")]),s._v(" "),a("h1",{attrs:{id:"返回值"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#返回值"}},[s._v("#")]),s._v(" 返回值")]),s._v(" "),a("table",[a("thead",[a("tr",[a("th",[s._v("类型")]),s._v(" "),a("th",[s._v("说明")])])]),s._v(" "),a("tbody",[a("tr",[a("td",[s._v("单位")]),s._v(" "),a("td",[s._v("注意返回是异步的 handle,切记小心使用")])])])]),s._v(" "),a("h1",{attrs:{id:"例子"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#例子"}},[s._v("#")]),s._v(" 例子")]),s._v(" "),a("div",{staticClass:"language-jass line-numbers-mode"},[a("pre",{pre:!0,attrs:{class:"language-jass"}},[a("code",[s._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("local")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token builtin"}},[s._v("unit")]),s._v(" u "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" GetRealSelectUnit()\n\n")])]),s._v(" "),a("div",{staticClass:"line-numbers-wrapper"},[a("span",{staticClass:"line-number"},[s._v("1")]),a("br"),a("span",{staticClass:"line-number"},[s._v("2")]),a("br"),a("span",{staticClass:"line-number"},[s._v("3")]),a("br")])]),a("div",{staticClass:"language-lua line-numbers-mode"},[a("pre",{pre:!0,attrs:{class:"language-lua"}},[a("code",[a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("local")]),s._v(" japi "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" require "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v("'jass.japi'")]),s._v("\n\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("local")]),s._v(" unit_handle "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" japi"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("GetRealSelectUnit")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v("\n\n")])]),s._v(" "),a("div",{staticClass:"line-numbers-wrapper"},[a("span",{staticClass:"line-number"},[s._v("1")]),a("br"),a("span",{staticClass:"line-number"},[s._v("2")]),a("br"),a("span",{staticClass:"line-number"},[s._v("3")]),a("br"),a("span",{staticClass:"line-number"},[s._v("4")]),a("br")])])])}),[],!1,null,null,null);a.default=n.exports}}]); -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/js/42.e8ec1f23.js: -------------------------------------------------------------------------------- 1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[42],{251:function(s,a,t){"use strict";t.r(a);var e=t(2),n=Object(e.a)({},(function(){var s=this,a=s._self._c;return a("ContentSlotsDistributor",{attrs:{"slot-key":s.$parent.slotKey}},[a("h1",{attrs:{id:"获取聊天框是否打开"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#获取聊天框是否打开"}},[s._v("#")]),s._v(" 获取聊天框是否打开")]),s._v(" "),a("div",{staticClass:"language-jass line-numbers-mode"},[a("pre",{pre:!0,attrs:{class:"language-jass"}},[a("code",[a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("function")]),s._v(" GetChatState "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("takes")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token builtin"}},[s._v("nothing")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("returns")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token builtin"}},[s._v("boolean")]),s._v("\n")])]),s._v(" "),a("div",{staticClass:"line-numbers-wrapper"},[a("span",{staticClass:"line-number"},[s._v("1")]),a("br")])]),a("h1",{attrs:{id:"描述"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#描述"}},[s._v("#")]),s._v(" 描述")]),s._v(" "),a("p",[s._v("异步获取 玩家的聊天框是否被打开\n一般用来做键盘操作时 避免与输入冲突")]),s._v(" "),a("h1",{attrs:{id:"返回值"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#返回值"}},[s._v("#")]),s._v(" 返回值")]),s._v(" "),a("table",[a("thead",[a("tr",[a("th",[s._v("类型")]),s._v(" "),a("th",[s._v("说明")])])]),s._v(" "),a("tbody",[a("tr",[a("td",[s._v("布尔值")]),s._v(" "),a("td",[s._v("打开时返回 true 未打开时返回 false 意返回是异步的,切记小心使用")])])])]),s._v(" "),a("h1",{attrs:{id:"例子"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#例子"}},[s._v("#")]),s._v(" 例子")]),s._v(" "),a("div",{staticClass:"language-jass line-numbers-mode"},[a("pre",{pre:!0,attrs:{class:"language-jass"}},[a("code",[s._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("local")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token builtin"}},[s._v("boolean")]),s._v(" enable "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" GetChatState()\n\n")])]),s._v(" "),a("div",{staticClass:"line-numbers-wrapper"},[a("span",{staticClass:"line-number"},[s._v("1")]),a("br"),a("span",{staticClass:"line-number"},[s._v("2")]),a("br"),a("span",{staticClass:"line-number"},[s._v("3")]),a("br")])]),a("div",{staticClass:"language-lua line-numbers-mode"},[a("pre",{pre:!0,attrs:{class:"language-lua"}},[a("code",[a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("local")]),s._v(" japi "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" require "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v("'jass.japi'")]),s._v("\n\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("local")]),s._v(" enable "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" japi"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("GetChatState")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v(" \n\n")])]),s._v(" "),a("div",{staticClass:"line-numbers-wrapper"},[a("span",{staticClass:"line-number"},[s._v("1")]),a("br"),a("span",{staticClass:"line-number"},[s._v("2")]),a("br"),a("span",{staticClass:"line-number"},[s._v("3")]),a("br"),a("span",{staticClass:"line-number"},[s._v("4")]),a("br")])])])}),[],!1,null,null,null);a.default=n.exports}}]); -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/js/43.1b9ad91f.js: -------------------------------------------------------------------------------- 1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[43],{252:function(s,a,t){"use strict";t.r(a);var e=t(2),n=Object(e.a)({},(function(){var s=this,a=s._self._c;return a("ContentSlotsDistributor",{attrs:{"slot-key":s.$parent.slotKey}},[a("h1",{attrs:{id:"解锁blp像素限制"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#解锁blp像素限制"}},[s._v("#")]),s._v(" 解锁 BLP 像素限制")]),s._v(" "),a("div",{staticClass:"language-jass line-numbers-mode"},[a("pre",{pre:!0,attrs:{class:"language-jass"}},[a("code",[a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("function")]),s._v(" UnlockBlpSize "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("takes")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token builtin"}},[s._v("boolean")]),s._v(" is_unlock "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("returns")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token builtin"}},[s._v("nothing")]),s._v("\n")])]),s._v(" "),a("div",{staticClass:"line-numbers-wrapper"},[a("span",{staticClass:"line-number"},[s._v("1")]),a("br")])]),a("h1",{attrs:{id:"描述"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#描述"}},[s._v("#")]),s._v(" 描述")]),s._v(" "),a("p",[s._v("解锁 blp 贴图的像素上限 原本魔兽高清图片也会被限制在 512p 之内")]),s._v(" "),a("h1",{attrs:{id:"参数"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#参数"}},[s._v("#")]),s._v(" 参数")]),s._v(" "),a("table",[a("thead",[a("tr",[a("th",[s._v("类型")]),s._v(" "),a("th",[s._v("名字")]),s._v(" "),a("th",[s._v("说明")])])]),s._v(" "),a("tbody",[a("tr",[a("td",[s._v("布尔值")]),s._v(" "),a("td",[s._v("is_unlock")]),s._v(" "),a("td",[s._v("填 true 解锁 填 false 恢复")])])])]),s._v(" "),a("h1",{attrs:{id:"例子"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#例子"}},[s._v("#")]),s._v(" 例子")]),s._v(" "),a("div",{staticClass:"language-jass line-numbers-mode"},[a("pre",{pre:!0,attrs:{class:"language-jass"}},[a("code",[s._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("call")]),s._v(" UnlockBlpSize("),a("span",{pre:!0,attrs:{class:"token boolean"}},[s._v("true")]),s._v(")\n\n")])]),s._v(" "),a("div",{staticClass:"line-numbers-wrapper"},[a("span",{staticClass:"line-number"},[s._v("1")]),a("br"),a("span",{staticClass:"line-number"},[s._v("2")]),a("br"),a("span",{staticClass:"line-number"},[s._v("3")]),a("br")])]),a("div",{staticClass:"language-lua line-numbers-mode"},[a("pre",{pre:!0,attrs:{class:"language-lua"}},[a("code",[a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("local")]),s._v(" japi "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" require "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v("'jass.japi'")]),s._v("\n\njapi"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("UnlockBlpSize")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("true")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v("\n\n")])]),s._v(" "),a("div",{staticClass:"line-numbers-wrapper"},[a("span",{staticClass:"line-number"},[s._v("1")]),a("br"),a("span",{staticClass:"line-number"},[s._v("2")]),a("br"),a("span",{staticClass:"line-number"},[s._v("3")]),a("br"),a("span",{staticClass:"line-number"},[s._v("4")]),a("br")])])])}),[],!1,null,null,null);a.default=n.exports}}]); -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/js/44.1bc0bc05.js: -------------------------------------------------------------------------------- 1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[44],{253:function(s,a,t){"use strict";t.r(a);var e=t(2),n=Object(e.a)({},(function(){var s=this,a=s._self._c;return a("ContentSlotsDistributor",{attrs:{"slot-key":s.$parent.slotKey}},[a("h1",{attrs:{id:"解锁fps帧数上限"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#解锁fps帧数上限"}},[s._v("#")]),s._v(" 解锁 FPS 帧数上限")]),s._v(" "),a("div",{staticClass:"language-jass line-numbers-mode"},[a("pre",{pre:!0,attrs:{class:"language-jass"}},[a("code",[a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("function")]),s._v(" UnlockFps "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("takes")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token builtin"}},[s._v("boolean")]),s._v(" is_unlock "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("returns")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token builtin"}},[s._v("nothing")]),s._v("\n")])]),s._v(" "),a("div",{staticClass:"line-numbers-wrapper"},[a("span",{staticClass:"line-number"},[s._v("1")]),a("br")])]),a("h1",{attrs:{id:"描述"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#描述"}},[s._v("#")]),s._v(" 描述")]),s._v(" "),a("p",[s._v("解锁帧数上限 突破 60 帧")]),s._v(" "),a("h1",{attrs:{id:"参数"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#参数"}},[s._v("#")]),s._v(" 参数")]),s._v(" "),a("table",[a("thead",[a("tr",[a("th",[s._v("类型")]),s._v(" "),a("th",[s._v("名字")]),s._v(" "),a("th",[s._v("说明")])])]),s._v(" "),a("tbody",[a("tr",[a("td",[s._v("布尔值")]),s._v(" "),a("td",[s._v("is_unlock")]),s._v(" "),a("td",[s._v("填 true 解锁 填 false 恢复")])])])]),s._v(" "),a("h1",{attrs:{id:"例子"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#例子"}},[s._v("#")]),s._v(" 例子")]),s._v(" "),a("div",{staticClass:"language-jass line-numbers-mode"},[a("pre",{pre:!0,attrs:{class:"language-jass"}},[a("code",[s._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("call")]),s._v(" UnlockFps("),a("span",{pre:!0,attrs:{class:"token boolean"}},[s._v("true")]),s._v(")\n\n")])]),s._v(" "),a("div",{staticClass:"line-numbers-wrapper"},[a("span",{staticClass:"line-number"},[s._v("1")]),a("br"),a("span",{staticClass:"line-number"},[s._v("2")]),a("br"),a("span",{staticClass:"line-number"},[s._v("3")]),a("br")])]),a("div",{staticClass:"language-lua line-numbers-mode"},[a("pre",{pre:!0,attrs:{class:"language-lua"}},[a("code",[a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("local")]),s._v(" japi "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" require "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v("'jass.japi'")]),s._v("\n\njapi"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("UnlockFps")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("true")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v("\n\n")])]),s._v(" "),a("div",{staticClass:"line-numbers-wrapper"},[a("span",{staticClass:"line-number"},[s._v("1")]),a("br"),a("span",{staticClass:"line-number"},[s._v("2")]),a("br"),a("span",{staticClass:"line-number"},[s._v("3")]),a("br"),a("span",{staticClass:"line-number"},[s._v("4")]),a("br")])])])}),[],!1,null,null,null);a.default=n.exports}}]); -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/js/45.2e2624b0.js: -------------------------------------------------------------------------------- 1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[45],{254:function(s,t,a){"use strict";a.r(t);var n=a(2),e=Object(n.a)({},(function(){var s=this,t=s._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":s.$parent.slotKey}},[t("h1",{attrs:{id:"设置单位名字"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#设置单位名字"}},[s._v("#")]),s._v(" 设置单位名字")]),s._v(" "),t("div",{staticClass:"language-jass line-numbers-mode"},[t("pre",{pre:!0,attrs:{class:"language-jass"}},[t("code",[t("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("function")]),s._v(" SetUnitName "),t("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("takes")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token builtin"}},[s._v("unit")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token builtin"}},[s._v("handle")]),s._v(", "),t("span",{pre:!0,attrs:{class:"token builtin"}},[s._v("string")]),s._v(" name "),t("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("returns")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token builtin"}},[s._v("nothing")]),s._v("\n")])]),s._v(" "),t("div",{staticClass:"line-numbers-wrapper"},[t("span",{staticClass:"line-number"},[s._v("1")]),t("br")])]),t("h1",{attrs:{id:"描述"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#描述"}},[s._v("#")]),s._v(" 描述")]),s._v(" "),t("p",[s._v("设置单位名字 每个单位独立 互相不影响 修改后 获取单位名字 还是返回原值")]),s._v(" "),t("h1",{attrs:{id:"参数"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#参数"}},[s._v("#")]),s._v(" 参数")]),s._v(" "),t("table",[t("thead",[t("tr",[t("th",[s._v("类型")]),s._v(" "),t("th",[s._v("名字")]),s._v(" "),t("th",[s._v("说明")])])]),s._v(" "),t("tbody",[t("tr",[t("td",[s._v("单位")]),s._v(" "),t("td",[s._v("handle")]),s._v(" "),t("td",[s._v("要修改的单位 handle")])]),s._v(" "),t("tr",[t("td",[s._v("字符串")]),s._v(" "),t("td",[s._v("name")]),s._v(" "),t("td",[s._v("要修改的名字")])])])]),s._v(" "),t("h1",{attrs:{id:"例子"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#例子"}},[s._v("#")]),s._v(" 例子")]),s._v(" "),t("div",{staticClass:"language-jass line-numbers-mode"},[t("pre",{pre:!0,attrs:{class:"language-jass"}},[t("code",[t("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("call")]),s._v(" SetUnitName(GetTriggerUnit(), "),t("span",{pre:!0,attrs:{class:"token string"}},[s._v('"新的名字"')]),s._v(")\n\n")])]),s._v(" "),t("div",{staticClass:"line-numbers-wrapper"},[t("span",{staticClass:"line-number"},[s._v("1")]),t("br"),t("span",{staticClass:"line-number"},[s._v("2")]),t("br")])]),t("div",{staticClass:"language-lua line-numbers-mode"},[t("pre",{pre:!0,attrs:{class:"language-lua"}},[t("code",[t("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("local")]),s._v(" japi "),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" require "),t("span",{pre:!0,attrs:{class:"token string"}},[s._v("'jass.japi'")]),s._v("\n"),t("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("local")]),s._v(" jass "),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" require "),t("span",{pre:!0,attrs:{class:"token string"}},[s._v("'jass.common'")]),s._v("\n\njapi"),t("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(".")]),t("span",{pre:!0,attrs:{class:"token function"}},[s._v("SetUnitName")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v("jass"),t("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(".")]),t("span",{pre:!0,attrs:{class:"token function"}},[s._v("GetTriggerUnit")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token string"}},[s._v('"新的名字"')]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v("\n\n")])]),s._v(" "),t("div",{staticClass:"line-numbers-wrapper"},[t("span",{staticClass:"line-number"},[s._v("1")]),t("br"),t("span",{staticClass:"line-number"},[s._v("2")]),t("br"),t("span",{staticClass:"line-number"},[s._v("3")]),t("br"),t("span",{staticClass:"line-number"},[s._v("4")]),t("br"),t("span",{staticClass:"line-number"},[s._v("5")]),t("br")])])])}),[],!1,null,null,null);t.default=e.exports}}]); -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/js/47.71e03106.js: -------------------------------------------------------------------------------- 1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[47],{256:function(s,t,a){"use strict";a.r(t);var n=a(2),e=Object(n.a)({},(function(){var s=this,t=s._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":s.$parent.slotKey}},[t("h1",{attrs:{id:"设置单位普攻弹道弧度"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#设置单位普攻弹道弧度"}},[s._v("#")]),s._v(" 设置单位普攻弹道弧度")]),s._v(" "),t("div",{staticClass:"language-jass line-numbers-mode"},[t("pre",{pre:!0,attrs:{class:"language-jass"}},[t("code",[t("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("function")]),s._v(" SetUnitMissileArc "),t("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("takes")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token builtin"}},[s._v("unit")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token builtin"}},[s._v("handle")]),s._v(", "),t("span",{pre:!0,attrs:{class:"token builtin"}},[s._v("real")]),s._v(" value "),t("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("returns")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token builtin"}},[s._v("nothing")]),s._v("\n")])]),s._v(" "),t("div",{staticClass:"line-numbers-wrapper"},[t("span",{staticClass:"line-number"},[s._v("1")]),t("br")])]),t("h1",{attrs:{id:"描述"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#描述"}},[s._v("#")]),s._v(" 描述")]),s._v(" "),t("p",[s._v("设置单位普攻弹道弧度 每个单位独立 互相不影响 会被法球覆盖")]),s._v(" "),t("h1",{attrs:{id:"参数"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#参数"}},[s._v("#")]),s._v(" 参数")]),s._v(" "),t("table",[t("thead",[t("tr",[t("th",[s._v("类型")]),s._v(" "),t("th",[s._v("名字")]),s._v(" "),t("th",[s._v("说明")])])]),s._v(" "),t("tbody",[t("tr",[t("td",[s._v("单位")]),s._v(" "),t("td",[s._v("handle")]),s._v(" "),t("td",[s._v("要修改的单位 handle")])]),s._v(" "),t("tr",[t("td",[s._v("实数")]),s._v(" "),t("td",[s._v("value")]),s._v(" "),t("td",[s._v("弧度")])])])]),s._v(" "),t("h1",{attrs:{id:"例子"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#例子"}},[s._v("#")]),s._v(" 例子")]),s._v(" "),t("div",{staticClass:"language-jass line-numbers-mode"},[t("pre",{pre:!0,attrs:{class:"language-jass"}},[t("code",[t("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("call")]),s._v(" SetUnitMissileArc(GetTriggerUnit(), "),t("span",{pre:!0,attrs:{class:"token number"}},[s._v("0.8")]),s._v(")\n\n")])]),s._v(" "),t("div",{staticClass:"line-numbers-wrapper"},[t("span",{staticClass:"line-number"},[s._v("1")]),t("br"),t("span",{staticClass:"line-number"},[s._v("2")]),t("br")])]),t("div",{staticClass:"language-lua line-numbers-mode"},[t("pre",{pre:!0,attrs:{class:"language-lua"}},[t("code",[t("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("local")]),s._v(" japi "),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" require "),t("span",{pre:!0,attrs:{class:"token string"}},[s._v("'jass.japi'")]),s._v("\n"),t("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("local")]),s._v(" jass "),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" require "),t("span",{pre:!0,attrs:{class:"token string"}},[s._v("'jass.common'")]),s._v("\n\njapi"),t("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(".")]),t("span",{pre:!0,attrs:{class:"token function"}},[s._v("SetUnitMissileArc")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v("jass"),t("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(".")]),t("span",{pre:!0,attrs:{class:"token function"}},[s._v("GetTriggerUnit")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token number"}},[s._v("0.8")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v("\n\n")])]),s._v(" "),t("div",{staticClass:"line-numbers-wrapper"},[t("span",{staticClass:"line-number"},[s._v("1")]),t("br"),t("span",{staticClass:"line-number"},[s._v("2")]),t("br"),t("span",{staticClass:"line-number"},[s._v("3")]),t("br"),t("span",{staticClass:"line-number"},[s._v("4")]),t("br"),t("span",{staticClass:"line-number"},[s._v("5")]),t("br")])])])}),[],!1,null,null,null);t.default=e.exports}}]); -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/js/5.52049d14.js: -------------------------------------------------------------------------------- 1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[5],{186:function(t,e,a){},210:function(t,e,a){"use strict";a(186)},216:function(t,e,a){"use strict";a.r(e);var s={name:"CodeBlock",props:{title:{type:String,required:!0},active:{type:Boolean,default:!1}},mounted(){this.$parent&&this.$parent.loadTabs&&this.$parent.loadTabs()}},i=(a(210),a(2)),n=Object(i.a)(s,(function(){return(0,this._self._c)("div",{staticClass:"theme-code-block",class:{"theme-code-block__active":this.active}},[this._t("default")],2)}),[],!1,null,"759a7d02",null);e.default=n.exports}}]); -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/js/5.9fca25c8.js: -------------------------------------------------------------------------------- 1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[5],{187:function(t,e,a){},211:function(t,e,a){"use strict";a(187)},216:function(t,e,a){"use strict";a.r(e);var s={name:"CodeBlock",props:{title:{type:String,required:!0},active:{type:Boolean,default:!1}},mounted(){this.$parent&&this.$parent.loadTabs&&this.$parent.loadTabs()}},i=(a(211),a(2)),n=Object(i.a)(s,(function(){return(0,this._self._c)("div",{staticClass:"theme-code-block",class:{"theme-code-block__active":this.active}},[this._t("default")],2)}),[],!1,null,"759a7d02",null);e.default=n.exports}}]); -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/js/50.3646cffa.js: -------------------------------------------------------------------------------- 1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[50],{259:function(s,t,a){"use strict";a.r(t);var e=a(2),n=Object(e.a)({},(function(){var s=this,t=s._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":s.$parent.slotKey}},[t("h1",{attrs:{id:"设置单位普攻弹道速度"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#设置单位普攻弹道速度"}},[s._v("#")]),s._v(" 设置单位普攻弹道速度")]),s._v(" "),t("div",{staticClass:"language-jass line-numbers-mode"},[t("pre",{pre:!0,attrs:{class:"language-jass"}},[t("code",[t("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("function")]),s._v(" SetUnitMissileSpeed "),t("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("takes")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token builtin"}},[s._v("unit")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token builtin"}},[s._v("handle")]),s._v(", "),t("span",{pre:!0,attrs:{class:"token builtin"}},[s._v("real")]),s._v(" value "),t("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("returns")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token builtin"}},[s._v("nothing")]),s._v("\n")])]),s._v(" "),t("div",{staticClass:"line-numbers-wrapper"},[t("span",{staticClass:"line-number"},[s._v("1")]),t("br")])]),t("h1",{attrs:{id:"描述"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#描述"}},[s._v("#")]),s._v(" 描述")]),s._v(" "),t("p",[s._v("设置单位普攻弹道速度 每个单位独立 互相不影响 会被法球覆盖")]),s._v(" "),t("h1",{attrs:{id:"参数"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#参数"}},[s._v("#")]),s._v(" 参数")]),s._v(" "),t("table",[t("thead",[t("tr",[t("th",[s._v("类型")]),s._v(" "),t("th",[s._v("名字")]),s._v(" "),t("th",[s._v("说明")])])]),s._v(" "),t("tbody",[t("tr",[t("td",[s._v("单位")]),s._v(" "),t("td",[s._v("handle")]),s._v(" "),t("td",[s._v("要修改的单位 handle")])]),s._v(" "),t("tr",[t("td",[s._v("实数")]),s._v(" "),t("td",[s._v("value")]),s._v(" "),t("td",[s._v("速度 每秒的距离")])])])]),s._v(" "),t("h1",{attrs:{id:"例子"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#例子"}},[s._v("#")]),s._v(" 例子")]),s._v(" "),t("div",{staticClass:"language-jass line-numbers-mode"},[t("pre",{pre:!0,attrs:{class:"language-jass"}},[t("code",[t("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("call")]),s._v(" SetUnitMissileSpeed(GetTriggerUnit(), "),t("span",{pre:!0,attrs:{class:"token number"}},[s._v("2000")]),s._v(")\n\n")])]),s._v(" "),t("div",{staticClass:"line-numbers-wrapper"},[t("span",{staticClass:"line-number"},[s._v("1")]),t("br"),t("span",{staticClass:"line-number"},[s._v("2")]),t("br")])]),t("div",{staticClass:"language-lua line-numbers-mode"},[t("pre",{pre:!0,attrs:{class:"language-lua"}},[t("code",[t("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("local")]),s._v(" japi "),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" require "),t("span",{pre:!0,attrs:{class:"token string"}},[s._v("'jass.japi'")]),s._v("\n"),t("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("local")]),s._v(" jass "),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" require "),t("span",{pre:!0,attrs:{class:"token string"}},[s._v("'jass.common'")]),s._v("\n\njapi"),t("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(".")]),t("span",{pre:!0,attrs:{class:"token function"}},[s._v("SetUnitMissileSpeed")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v("jass"),t("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(".")]),t("span",{pre:!0,attrs:{class:"token function"}},[s._v("GetTriggerUnit")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token number"}},[s._v("2000")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v("\n\n")])]),s._v(" "),t("div",{staticClass:"line-numbers-wrapper"},[t("span",{staticClass:"line-number"},[s._v("1")]),t("br"),t("span",{staticClass:"line-number"},[s._v("2")]),t("br"),t("span",{staticClass:"line-number"},[s._v("3")]),t("br"),t("span",{staticClass:"line-number"},[s._v("4")]),t("br"),t("span",{staticClass:"line-number"},[s._v("5")]),t("br")])])])}),[],!1,null,null,null);t.default=n.exports}}]); -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/js/54.e63b0b76.js: -------------------------------------------------------------------------------- 1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[54],{263:function(s,t,a){"use strict";a.r(t);var e=a(2),n=Object(e.a)({},(function(){var s=this,t=s._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":s.$parent.slotKey}},[t("h1",{attrs:{id:"设置特效动画"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#设置特效动画"}},[s._v("#")]),s._v(" 设置特效动画")]),s._v(" "),t("div",{staticClass:"language-jass line-numbers-mode"},[t("pre",{pre:!0,attrs:{class:"language-jass"}},[t("code",[t("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("function")]),s._v(" EXSetEffectAnimation "),t("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("takes")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token builtin"}},[s._v("effect")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token builtin"}},[s._v("handle")]),s._v(", "),t("span",{pre:!0,attrs:{class:"token builtin"}},[s._v("integer")]),s._v(" index "),t("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("returns")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token builtin"}},[s._v("nothing")]),s._v("\n")])]),s._v(" "),t("div",{staticClass:"line-numbers-wrapper"},[t("span",{staticClass:"line-number"},[s._v("1")]),t("br")])]),t("h1",{attrs:{id:"描述"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#描述"}},[s._v("#")]),s._v(" 描述")]),s._v(" "),t("p",[s._v("设置特效动画")]),s._v(" "),t("h1",{attrs:{id:"参数"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#参数"}},[s._v("#")]),s._v(" 参数")]),s._v(" "),t("table",[t("thead",[t("tr",[t("th",[s._v("类型")]),s._v(" "),t("th",[s._v("名字")]),s._v(" "),t("th",[s._v("说明")])])]),s._v(" "),t("tbody",[t("tr",[t("td",[s._v("特效")]),s._v(" "),t("td",[s._v("handle")]),s._v(" "),t("td",[s._v("特效 handle")])]),s._v(" "),t("tr",[t("td",[s._v("整数")]),s._v(" "),t("td",[s._v("index")]),s._v(" "),t("td",[s._v("动画索引")])])])]),s._v(" "),t("h1",{attrs:{id:"例子"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#例子"}},[s._v("#")]),s._v(" 例子")]),s._v(" "),t("div",{staticClass:"language-jass line-numbers-mode"},[t("pre",{pre:!0,attrs:{class:"language-jass"}},[t("code",[t("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("call")]),s._v(" EXSetEffectAnimation("),t("span",{pre:!0,attrs:{class:"token builtin"}},[s._v("handle")]),s._v(", "),t("span",{pre:!0,attrs:{class:"token number"}},[s._v("0")]),s._v(")\n")])]),s._v(" "),t("div",{staticClass:"line-numbers-wrapper"},[t("span",{staticClass:"line-number"},[s._v("1")]),t("br")])]),t("div",{staticClass:"language-lua line-numbers-mode"},[t("pre",{pre:!0,attrs:{class:"language-lua"}},[t("code",[t("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("local")]),s._v(" japi "),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" require "),t("span",{pre:!0,attrs:{class:"token string"}},[s._v("'jass.japi'")]),s._v("\n\njapi"),t("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(".")]),t("span",{pre:!0,attrs:{class:"token function"}},[s._v("EXSetEffectAnimation")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v("handle"),t("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token number"}},[s._v("0")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v("\n\n")])]),s._v(" "),t("div",{staticClass:"line-numbers-wrapper"},[t("span",{staticClass:"line-number"},[s._v("1")]),t("br"),t("span",{staticClass:"line-number"},[s._v("2")]),t("br"),t("span",{staticClass:"line-number"},[s._v("3")]),t("br"),t("span",{staticClass:"line-number"},[s._v("4")]),t("br")])])])}),[],!1,null,null,null);t.default=n.exports}}]); -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/js/59.da8754c7.js: -------------------------------------------------------------------------------- 1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[59],{268:function(t,s,r){"use strict";r.r(s);var a=r(2),o=Object(a.a)({},(function(){var t=this,s=t._self._c;return s("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[s("ul",[s("li",[s("RouterLink",{attrs:{to:"/Lua/"}},[s("strong",[t._v("Lua")])]),t._v(" "),s("ul",[s("li",[s("RouterLink",{attrs:{to:"/Lua/引擎变动.html"}},[s("strong",[t._v("引擎变动")])])],1),t._v(" "),s("li",[s("RouterLink",{attrs:{to:"/Lua/jass交互.html"}},[s("strong",[t._v("jass 交互")])])],1),t._v(" "),s("li",[s("RouterLink",{attrs:{to:"/Lua/dzapi.html"}},[s("strong",[t._v("dzapi 交互")])])],1),t._v(" "),s("li",[s("RouterLink",{attrs:{to:"/Lua/服务器交互.html"}},[s("strong",[t._v("服务器交互")])])],1),t._v(" "),s("li",[s("a",{attrs:{href:"./message"}},[s("strong",[t._v("jass.message")])])])])],1)])])}),[],!1,null,null,null);s.default=o.exports}}]); -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/js/6.235aaeb8.js: -------------------------------------------------------------------------------- 1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[6],{188:function(e,t,a){},212:function(e,t,a){"use strict";a(188)},217:function(e,t,a){"use strict";a.r(t);var o={name:"CodeGroup",data:()=>({codeTabs:[],activeCodeTabIndex:-1}),watch:{activeCodeTabIndex(e){this.activateCodeTab(e)}},mounted(){this.loadTabs()},methods:{changeCodeTab(e){this.activeCodeTabIndex=e},loadTabs(){this.codeTabs=(this.$slots.default||[]).filter(e=>Boolean(e.componentOptions)).map((e,t)=>(""===e.componentOptions.propsData.active&&(this.activeCodeTabIndex=t),{title:e.componentOptions.propsData.title,elm:e.elm})),-1===this.activeCodeTabIndex&&this.codeTabs.length>0&&(this.activeCodeTabIndex=0),this.activateCodeTab(0)},activateCodeTab(e){this.codeTabs.forEach(e=>{e.elm&&e.elm.classList.remove("theme-code-block__active")}),this.codeTabs[e].elm&&this.codeTabs[e].elm.classList.add("theme-code-block__active")}}},s=(a(212),a(2)),c=Object(s.a)(o,(function(){var e=this,t=e._self._c;return t("ClientOnly",[t("div",{staticClass:"theme-code-group"},[t("div",{staticClass:"theme-code-group__nav"},[t("ul",{staticClass:"theme-code-group__ul"},e._l(e.codeTabs,(function(a,o){return t("li",{key:a.title,staticClass:"theme-code-group__li"},[t("button",{staticClass:"theme-code-group__nav-tab",class:{"theme-code-group__nav-tab-active":o===e.activeCodeTabIndex},on:{click:function(t){return e.changeCodeTab(o)}}},[e._v("\n "+e._s(a.title)+"\n ")])])})),0)]),e._v(" "),e._t("default"),e._v(" "),e.codeTabs.length<1?t("pre",{staticClass:"pre-blank"},[e._v("// Make sure to add code blocks to your code group")]):e._e()],2)])}),[],!1,null,"deefee04",null);t.default=c.exports}}]); -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/js/62.924f824f.js: -------------------------------------------------------------------------------- 1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[62],{272:function(t,o,s){"use strict";s.r(o);var e=s(2),r=Object(e.a)({},(function(){var t=this,o=t._self._c;return o("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[o("ul",[o("li",[o("RouterLink",{attrs:{to:"/"}},[o("strong",[t._v("Lua")])]),t._v(" "),o("ul",[o("li",[o("RouterLink",{attrs:{to:"/"}},[o("strong",[t._v("jass.message")])]),t._v(" "),o("ul",[o("li",[o("p",[o("RouterLink",{attrs:{to:"/Lua/message/hook.html"}},[t._v("hook")])],1)]),t._v(" "),o("li",[o("p",[o("RouterLink",{attrs:{to:"/Lua/message/order_hook.html"}},[t._v("order_hook")])],1)]),t._v(" "),o("li",[o("p",[o("RouterLink",{attrs:{to:"/Lua/message/目标指示器.html"}},[t._v("目标指示器")])],1)]),t._v(" "),o("li",[o("p",[o("RouterLink",{attrs:{to:"/Lua/message/屏幕坐标转世界坐标.html"}},[t._v("屏幕坐标转世界坐标")])],1)]),t._v(" "),o("li",[o("p",[o("RouterLink",{attrs:{to:"/Lua/message/世界坐标转屏幕坐标.html"}},[t._v("世界坐标转屏幕坐标")])],1)]),t._v(" "),o("li",[o("p",[o("RouterLink",{attrs:{to:"/Lua/message/获取单位血条高度.html"}},[t._v("获取单位血条高度")])],1)]),t._v(" "),o("li",[o("p",[o("RouterLink",{attrs:{to:"/Lua/message/网易平台判断观战或录像.html"}},[t._v("网易平台判断观战或录像")])],1)])])],1)])],1)])])}),[],!1,null,null,null);o.default=r.exports}}]); -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/js/62.af142edc.js: -------------------------------------------------------------------------------- 1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[62],{271:function(t,o,s){"use strict";s.r(o);var e=s(2),r=Object(e.a)({},(function(){var t=this,o=t._self._c;return o("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[o("ul",[o("li",[o("RouterLink",{attrs:{to:"/"}},[o("strong",[t._v("Lua")])]),t._v(" "),o("ul",[o("li",[o("RouterLink",{attrs:{to:"/"}},[o("strong",[t._v("jass.message")])]),t._v(" "),o("ul",[o("li",[o("p",[o("RouterLink",{attrs:{to:"/Lua/message/hook.html"}},[t._v("hook")])],1)]),t._v(" "),o("li",[o("p",[o("RouterLink",{attrs:{to:"/Lua/message/order_hook.html"}},[t._v("order_hook")])],1)]),t._v(" "),o("li",[o("p",[o("RouterLink",{attrs:{to:"/Lua/message/目标指示器.html"}},[t._v("目标指示器")])],1)]),t._v(" "),o("li",[o("p",[o("RouterLink",{attrs:{to:"/Lua/message/屏幕坐标转世界坐标.html"}},[t._v("屏幕坐标转世界坐标")])],1)]),t._v(" "),o("li",[o("p",[o("RouterLink",{attrs:{to:"/Lua/message/世界坐标转屏幕坐标.html"}},[t._v("世界坐标转屏幕坐标")])],1)]),t._v(" "),o("li",[o("p",[o("RouterLink",{attrs:{to:"/Lua/message/获取单位血条高度.html"}},[t._v("获取单位血条高度")])],1)]),t._v(" "),o("li",[o("p",[o("RouterLink",{attrs:{to:"/Lua/message/网易平台判断观战或录像.html"}},[t._v("网易平台判断观战或录像")])],1)])])],1)])],1)])])}),[],!1,null,null,null);o.default=r.exports}}]); -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/js/65.3a1b9b9e.js: -------------------------------------------------------------------------------- 1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[65],{273:function(t,a,v){"use strict";v.r(a);var _=v(2),s=Object(_.a)({},(function(){var t=this,a=t._self._c;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"世界坐标转屏幕坐标"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#世界坐标转屏幕坐标"}},[t._v("#")]),t._v(" 世界坐标转屏幕坐标")]),t._v(" "),a("div",{staticClass:"language-lua line-numbers-mode"},[a("pre",{pre:!0,attrs:{class:"language-lua"}},[a("code",[t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("local")]),t._v(" x"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" y"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" scale "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" message"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("world_to_screen")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("x"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" y"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" z"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])]),t._v(" "),a("div",{staticClass:"line-numbers-wrapper"},[a("span",{staticClass:"line-number"},[t._v("1")]),a("br")])]),a("ul",[a("li",[t._v("配合单位血条高度 可以模拟血条")]),t._v(" "),a("li",[t._v("配合 UI 文本 可以实现自定义的字体的 UI 跳字")]),t._v(" "),a("li",[t._v("配合 UI 可以实现在多个掉落物品上提示文本 传奇那种装备爆满地")]),t._v(" "),a("li",[t._v("配合 UI 可以画英雄称号 商店标题 等等")])]),t._v(" "),a("h1",{attrs:{id:"参数"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#参数"}},[t._v("#")]),t._v(" 参数")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",[t._v("索引")]),t._v(" "),a("th",[t._v("类型")]),t._v(" "),a("th",[t._v("说明")])])]),t._v(" "),a("tbody",[a("tr",[a("td",[t._v("1")]),t._v(" "),a("td",[t._v("number")]),t._v(" "),a("td",[t._v("世界坐标 x 轴")])]),t._v(" "),a("tr",[a("td",[t._v("2")]),t._v(" "),a("td",[t._v("number")]),t._v(" "),a("td",[t._v("世界坐标 y 轴")])]),t._v(" "),a("tr",[a("td",[t._v("3")]),t._v(" "),a("td",[t._v("number")]),t._v(" "),a("td",[t._v("世界坐标 z 轴")])])])]),t._v(" "),a("h1",{attrs:{id:"返回值"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#返回值"}},[t._v("#")]),t._v(" 返回值")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",[t._v("索引")]),t._v(" "),a("th",[t._v("类型")]),t._v(" "),a("th",[t._v("说明")])])]),t._v(" "),a("tbody",[a("tr",[a("td",[t._v("1")]),t._v(" "),a("td",[t._v("number")]),t._v(" "),a("td",[t._v("屏幕 x 轴 左到右 0 ~ 0.8")])]),t._v(" "),a("tr",[a("td",[t._v("2")]),t._v(" "),a("td",[t._v("number")]),t._v(" "),a("td",[t._v("屏幕 y 轴 上到下 0 ~ 0.6")])]),t._v(" "),a("tr",[a("td",[t._v("3")]),t._v(" "),a("td",[t._v("number")]),t._v(" "),a("td",[t._v("缩放 近大远小")])])])])])}),[],!1,null,null,null);a.default=s.exports}}]); -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/js/65.a85f3009.js: -------------------------------------------------------------------------------- 1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[65],{274:function(t,a,v){"use strict";v.r(a);var _=v(2),s=Object(_.a)({},(function(){var t=this,a=t._self._c;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"世界坐标转屏幕坐标"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#世界坐标转屏幕坐标"}},[t._v("#")]),t._v(" 世界坐标转屏幕坐标")]),t._v(" "),a("div",{staticClass:"language-lua line-numbers-mode"},[a("pre",{pre:!0,attrs:{class:"language-lua"}},[a("code",[t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("local")]),t._v(" x"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" y"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" scale "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" message"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("world_to_screen")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("x"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" y"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" z"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])]),t._v(" "),a("div",{staticClass:"line-numbers-wrapper"},[a("span",{staticClass:"line-number"},[t._v("1")]),a("br")])]),a("ul",[a("li",[t._v("配合单位血条高度 可以模拟血条")]),t._v(" "),a("li",[t._v("配合 UI 文本 可以实现自定义的字体的 UI 跳字")]),t._v(" "),a("li",[t._v("配合 UI 可以实现在多个掉落物品上提示文本 传奇那种装备爆满地")]),t._v(" "),a("li",[t._v("配合 UI 可以画英雄称号 商店标题 等等")])]),t._v(" "),a("h1",{attrs:{id:"参数"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#参数"}},[t._v("#")]),t._v(" 参数")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",[t._v("索引")]),t._v(" "),a("th",[t._v("类型")]),t._v(" "),a("th",[t._v("说明")])])]),t._v(" "),a("tbody",[a("tr",[a("td",[t._v("1")]),t._v(" "),a("td",[t._v("number")]),t._v(" "),a("td",[t._v("世界坐标 x 轴")])]),t._v(" "),a("tr",[a("td",[t._v("2")]),t._v(" "),a("td",[t._v("number")]),t._v(" "),a("td",[t._v("世界坐标 y 轴")])]),t._v(" "),a("tr",[a("td",[t._v("3")]),t._v(" "),a("td",[t._v("number")]),t._v(" "),a("td",[t._v("世界坐标 z 轴")])])])]),t._v(" "),a("h1",{attrs:{id:"返回值"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#返回值"}},[t._v("#")]),t._v(" 返回值")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",[t._v("索引")]),t._v(" "),a("th",[t._v("类型")]),t._v(" "),a("th",[t._v("说明")])])]),t._v(" "),a("tbody",[a("tr",[a("td",[t._v("1")]),t._v(" "),a("td",[t._v("number")]),t._v(" "),a("td",[t._v("屏幕 x 轴 左到右 0 ~ 0.8")])]),t._v(" "),a("tr",[a("td",[t._v("2")]),t._v(" "),a("td",[t._v("number")]),t._v(" "),a("td",[t._v("屏幕 y 轴 上到下 0 ~ 0.6")])]),t._v(" "),a("tr",[a("td",[t._v("3")]),t._v(" "),a("td",[t._v("number")]),t._v(" "),a("td",[t._v("缩放 近大远小")])])])])])}),[],!1,null,null,null);a.default=s.exports}}]); -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/js/66.cd40bc10.js: -------------------------------------------------------------------------------- 1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[66],{275:function(t,a,s){"use strict";s.r(a);var r=s(2),e=Object(r.a)({},(function(){var t=this,a=t._self._c;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"屏幕坐标转世界坐标"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#屏幕坐标转世界坐标"}},[t._v("#")]),t._v(" 屏幕坐标转世界坐标")]),t._v(" "),a("div",{staticClass:"language-lua line-numbers-mode"},[a("pre",{pre:!0,attrs:{class:"language-lua"}},[a("code",[t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("local")]),t._v(" x"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" y "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" message"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("screen_to_world")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("0.4")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("0.3")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])]),t._v(" "),a("div",{staticClass:"line-numbers-wrapper"},[a("span",{staticClass:"line-number"},[t._v("1")]),a("br")])]),a("p",[t._v("可以做一些特殊效果 比如从某个 UI 上面 飞一个特效到英雄身上 像王者荣耀的装备 那样")]),t._v(" "),a("h1",{attrs:{id:"参数"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#参数"}},[t._v("#")]),t._v(" 参数")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",[t._v("索引")]),t._v(" "),a("th",[t._v("类型")]),t._v(" "),a("th",[t._v("说明")])])]),t._v(" "),a("tbody",[a("tr",[a("td",[t._v("1")]),t._v(" "),a("td",[t._v("number")]),t._v(" "),a("td",[t._v("屏幕 x 轴 左到右 0 ~ 0.8")])]),t._v(" "),a("tr",[a("td",[t._v("2")]),t._v(" "),a("td",[t._v("number")]),t._v(" "),a("td",[t._v("屏幕 y 轴 上到下 0 ~ 0.6")])])])]),t._v(" "),a("h1",{attrs:{id:"返回值"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#返回值"}},[t._v("#")]),t._v(" 返回值")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",[t._v("索引")]),t._v(" "),a("th",[t._v("类型")]),t._v(" "),a("th",[t._v("说明")])])]),t._v(" "),a("tbody",[a("tr",[a("td",[t._v("1")]),t._v(" "),a("td",[t._v("number")]),t._v(" "),a("td",[t._v("世界坐标 x 轴")])]),t._v(" "),a("tr",[a("td",[t._v("2")]),t._v(" "),a("td",[t._v("number")]),t._v(" "),a("td",[t._v("世界坐标 y 轴")])])])])])}),[],!1,null,null,null);a.default=e.exports}}]); -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/js/69.7ab017d8.js: -------------------------------------------------------------------------------- 1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[69],{279:function(t,a,s){"use strict";s.r(a);var e=s(2),r=Object(e.a)({},(function(){var t=this,a=t._self._c;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"屏幕坐标转世界坐标"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#屏幕坐标转世界坐标"}},[t._v("#")]),t._v(" 屏幕坐标转世界坐标")]),t._v(" "),a("div",{staticClass:"language-lua line-numbers-mode"},[a("pre",{pre:!0,attrs:{class:"language-lua"}},[a("code",[t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("local")]),t._v(" height "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" message"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("unit_overhead")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("unit_handle"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])]),t._v(" "),a("div",{staticClass:"line-numbers-wrapper"},[a("span",{staticClass:"line-number"},[t._v("1")]),a("br")])]),a("ul",[a("li",[t._v("用来模拟血条 或者绑定 UI 到单位头顶时会用到")])]),t._v(" "),a("h1",{attrs:{id:"参数"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#参数"}},[t._v("#")]),t._v(" 参数")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",[t._v("索引")]),t._v(" "),a("th",[t._v("类型")]),t._v(" "),a("th",[t._v("说明")])])]),t._v(" "),a("tbody",[a("tr",[a("td",[t._v("1")]),t._v(" "),a("td",[t._v("handle")]),t._v(" "),a("td",[t._v("单位的 handle")])])])]),t._v(" "),a("h1",{attrs:{id:"返回值"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#返回值"}},[t._v("#")]),t._v(" 返回值")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",[t._v("索引")]),t._v(" "),a("th",[t._v("类型")]),t._v(" "),a("th",[t._v("说明")])])]),t._v(" "),a("tbody",[a("tr",[a("td",[t._v("1")]),t._v(" "),a("td",[t._v("number")]),t._v(" "),a("td",[t._v("单位的血条高度")])])])])])}),[],!1,null,null,null);a.default=r.exports}}]); -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/js/69.c7ad923e.js: -------------------------------------------------------------------------------- 1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[69],{278:function(t,a,s){"use strict";s.r(a);var e=s(2),r=Object(e.a)({},(function(){var t=this,a=t._self._c;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"屏幕坐标转世界坐标"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#屏幕坐标转世界坐标"}},[t._v("#")]),t._v(" 屏幕坐标转世界坐标")]),t._v(" "),a("div",{staticClass:"language-lua line-numbers-mode"},[a("pre",{pre:!0,attrs:{class:"language-lua"}},[a("code",[t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("local")]),t._v(" height "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" message"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("unit_overhead")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("unit_handle"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])]),t._v(" "),a("div",{staticClass:"line-numbers-wrapper"},[a("span",{staticClass:"line-number"},[t._v("1")]),a("br")])]),a("ul",[a("li",[t._v("用来模拟血条 或者绑定 UI 到单位头顶时会用到")])]),t._v(" "),a("h1",{attrs:{id:"参数"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#参数"}},[t._v("#")]),t._v(" 参数")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",[t._v("索引")]),t._v(" "),a("th",[t._v("类型")]),t._v(" "),a("th",[t._v("说明")])])]),t._v(" "),a("tbody",[a("tr",[a("td",[t._v("1")]),t._v(" "),a("td",[t._v("handle")]),t._v(" "),a("td",[t._v("单位的 handle")])])])]),t._v(" "),a("h1",{attrs:{id:"返回值"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#返回值"}},[t._v("#")]),t._v(" 返回值")]),t._v(" "),a("table",[a("thead",[a("tr",[a("th",[t._v("索引")]),t._v(" "),a("th",[t._v("类型")]),t._v(" "),a("th",[t._v("说明")])])]),t._v(" "),a("tbody",[a("tr",[a("td",[t._v("1")]),t._v(" "),a("td",[t._v("number")]),t._v(" "),a("td",[t._v("单位的血条高度")])])])])])}),[],!1,null,null,null);a.default=r.exports}}]); -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/js/70.eda8ee8d.js: -------------------------------------------------------------------------------- 1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[70],{279:function(a,t,s){"use strict";s.r(t);var e=s(2),l=Object(e.a)({},(function(){var a=this,t=a._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":a.$parent.slotKey}},[t("h1",{attrs:{id:"引擎变动"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#引擎变动"}},[a._v("#")]),a._v(" 引擎变动")]),a._v(" "),t("p",[a._v("引擎版本 lua 5.34")]),a._v(" "),t("ul",[t("li",[t("p",[a._v("新增 "),t("RouterLink",{attrs:{to:"/Lua/jass交互.html"}},[a._v("jass.code")])],1)]),a._v(" "),t("li",[t("p",[a._v("新增 "),t("RouterLink",{attrs:{to:"/Lua/dzapi.html"}},[a._v("jass.dzapi")])],1)]),a._v(" "),t("li",[t("p",[a._v("新增 "),t("a",{attrs:{href:"/Lua/message"}},[a._v("jass.message")]),a._v(" 新接口")])]),a._v(" "),t("li",[t("p",[a._v("新增 "),t("a",{attrs:{href:"https://github.com/actboy168/lni",target:"_blank",rel:"noopener noreferrer"}},[a._v("jass.lni"),t("OutboundLink")],1)])]),a._v(" "),t("li",[t("p",[a._v("新增 "),t("a",{attrs:{href:"https://github.com/sqmedeiros/lpeglabel",target:"_blank",rel:"noopener noreferrer"}},[a._v("lpeglabel"),t("OutboundLink")],1)])]),a._v(" "),t("li",[t("p",[a._v("新增 "),t("RouterLink",{attrs:{to:"/Lua/服务器交互.html"}},[a._v("服务器通讯")]),a._v(" 接口 允许跟服务器进行通讯")],1)]),a._v(" "),t("li",[t("p",[a._v("改动 打乱虚拟机字节码 luac 之后 常规反编译工具不能直接还原")])]),a._v(" "),t("li",[t("p",[a._v("改动 可以允许 string number pairs 不异步 保留 gchash 对 table userdata 使用可以防止异步")])]),a._v(" "),t("li",[t("p",[a._v("改动 允许 jass.storm 对全局路径进行 读写 文件类型保护任有效。")])]),a._v(" "),t("li",[t("p",[a._v("改动 jass.globals jass.code 支持混淆 j 文件 不影响 lua 脚本。")])]),a._v(" "),t("li",[t("p",[a._v("改动 允许中文变量名")])]),a._v(" "),t("li",[t("p",[a._v("修复 message.hook 在网易平台冲突的问题")])]),a._v(" "),t("li",[t("p",[a._v("修复 注册 lua 函数给 jass 在大量 jass lua 混用的地图里崩溃问题")])]),a._v(" "),t("li",[t("p",[a._v("修复 注册 lua 闭包函数给 jass 会导致掉线问题。")])])])])}),[],!1,null,null,null);t.default=l.exports}}]); -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/js/70.f2aa30a2.js: -------------------------------------------------------------------------------- 1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[70],{278:function(a,t,s){"use strict";s.r(t);var e=s(2),l=Object(e.a)({},(function(){var a=this,t=a._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":a.$parent.slotKey}},[t("h1",{attrs:{id:"引擎变动"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#引擎变动"}},[a._v("#")]),a._v(" 引擎变动")]),a._v(" "),t("p",[a._v("引擎版本 lua 5.34")]),a._v(" "),t("ul",[t("li",[t("p",[a._v("新增 "),t("RouterLink",{attrs:{to:"/Lua/jass交互.html"}},[a._v("jass.code")])],1)]),a._v(" "),t("li",[t("p",[a._v("新增 "),t("RouterLink",{attrs:{to:"/Lua/dzapi.html"}},[a._v("jass.dzapi")])],1)]),a._v(" "),t("li",[t("p",[a._v("新增 "),t("a",{attrs:{href:"/Lua/message"}},[a._v("jass.message")]),a._v(" 新接口")])]),a._v(" "),t("li",[t("p",[a._v("新增 "),t("a",{attrs:{href:"https://github.com/actboy168/lni",target:"_blank",rel:"noopener noreferrer"}},[a._v("jass.lni"),t("OutboundLink")],1)])]),a._v(" "),t("li",[t("p",[a._v("新增 "),t("a",{attrs:{href:"https://github.com/sqmedeiros/lpeglabel",target:"_blank",rel:"noopener noreferrer"}},[a._v("lpeglabel"),t("OutboundLink")],1)])]),a._v(" "),t("li",[t("p",[a._v("新增 "),t("RouterLink",{attrs:{to:"/Lua/服务器交互.html"}},[a._v("服务器通讯")]),a._v(" 接口 允许跟服务器进行通讯")],1)]),a._v(" "),t("li",[t("p",[a._v("改动 打乱虚拟机字节码 luac 之后 常规反编译工具不能直接还原")])]),a._v(" "),t("li",[t("p",[a._v("改动 可以允许 string number pairs 不异步 保留 gchash 对 table userdata 使用可以防止异步")])]),a._v(" "),t("li",[t("p",[a._v("改动 允许 jass.storm 对全局路径进行 读写 文件类型保护任有效。")])]),a._v(" "),t("li",[t("p",[a._v("改动 jass.globals jass.code 支持混淆 j 文件 不影响 lua 脚本。")])]),a._v(" "),t("li",[t("p",[a._v("改动 允许中文变量名")])]),a._v(" "),t("li",[t("p",[a._v("修复 message.hook 在网易平台冲突的问题")])]),a._v(" "),t("li",[t("p",[a._v("修复 注册 lua 函数给 jass 在大量 jass lua 混用的地图里崩溃问题")])]),a._v(" "),t("li",[t("p",[a._v("修复 注册 lua 闭包函数给 jass 会导致掉线问题。")])])])])}),[],!1,null,null,null);t.default=l.exports}}]); -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/js/73.39a3075f.js: -------------------------------------------------------------------------------- 1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[73],{282:function(t,s,r){"use strict";r.r(s);var i=r(2),n=Object(i.a)({},(function(){var t=this._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":this.$parent.slotKey}},[t("ul",[t("li",[t("RouterLink",{attrs:{to:"/Script/"}},[t("strong",[this._v("Script")])]),this._v(" "),t("ul",[t("li",[t("a",{attrs:{href:"./%E7%95%8C%E9%9D%A2"}},[t("strong",[this._v("界面")])])]),this._v(" "),t("li",[t("a",{attrs:{href:"./%E4%BE%8B%E5%AD%90"}},[t("strong",[this._v("例子")])])])])],1)])])}),[],!1,null,null,null);s.default=n.exports}}]); -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/js/73.c0f5f5e5.js: -------------------------------------------------------------------------------- 1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[73],{281:function(t,s,r){"use strict";r.r(s);var i=r(2),n=Object(i.a)({},(function(){var t=this._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":this.$parent.slotKey}},[t("ul",[t("li",[t("RouterLink",{attrs:{to:"/Script/"}},[t("strong",[this._v("Script")])]),this._v(" "),t("ul",[t("li",[t("a",{attrs:{href:"./%E7%95%8C%E9%9D%A2"}},[t("strong",[this._v("界面")])])]),this._v(" "),t("li",[t("a",{attrs:{href:"./%E4%BE%8B%E5%AD%90"}},[t("strong",[this._v("例子")])])])])],1)])])}),[],!1,null,null,null);s.default=n.exports}}]); -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/js/74.b3ac2adc.js: -------------------------------------------------------------------------------- 1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[74],{283:function(t,r,o){"use strict";o.r(r);var n=o(2),i=Object(n.a)({},(function(){var t=this,r=t._self._c;return r("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[r("ul",[r("li",[r("RouterLink",{attrs:{to:"/Script/"}},[r("strong",[t._v("Script")])]),t._v(" "),r("ul",[r("li",[r("RouterLink",{attrs:{to:"/Script/例子/"}},[r("strong",[t._v("例子")])]),t._v(" "),r("ul",[r("li",[r("RouterLink",{attrs:{to:"/Script/例子/智能施法.html"}},[r("strong",[t._v("智能施法")])])],1),t._v(" "),r("li",[r("RouterLink",{attrs:{to:"/Script/例子/聊天弹幕.html"}},[r("strong",[t._v("聊天弹幕")])])],1),t._v(" "),r("li",[r("RouterLink",{attrs:{to:"/Script/例子/模型镜头查看器.html"}},[r("strong",[t._v("模型镜头查看器")])])],1)])],1)])],1)])])}),[],!1,null,null,null);r.default=i.exports}}]); -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/js/76.4542f802.js: -------------------------------------------------------------------------------- 1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[76],{285:function(t,e,r){"use strict";r.r(e);var n=r(2),a=Object(n.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"模型镜头查看器"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#模型镜头查看器"}},[t._v("#")]),t._v(" 模型镜头查看器")]),t._v(" "),e("p",[t._v("用来 model2 控件的模型调整,操作方式跟绿苹果一样,操作好了按 Ctrl + C 将数据复制出来即可")]),t._v(" "),e("p",[e("a",{attrs:{href:"https://gitee.com/merkave/document",target:"_blank",rel:"noopener noreferrer"}},[t._v("镜头查看器"),e("OutboundLink")],1)]),t._v(" "),e("p",[t._v("使用方法 先加载上面的脚本 在 model2 的构造参数里 加一行 debug_camera = true, 即可")])])}),[],!1,null,null,null);e.default=a.exports}}]); -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/js/78.6639b20f.js: -------------------------------------------------------------------------------- 1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[78],{287:function(t,r,o){"use strict";o.r(r);var i=o(2),n=Object(i.a)({},(function(){var t=this,r=t._self._c;return r("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[r("ul",[r("li",[r("p",[r("RouterLink",{attrs:{to:"/Script/"}},[r("strong",[t._v("Script")])])],1),t._v(" "),r("ul",[r("li",[r("p",[r("RouterLink",{attrs:{to:"/Script/界面/"}},[r("strong",[t._v("界面")])])],1),t._v(" "),r("ul",[r("li",[r("p",[r("RouterLink",{attrs:{to:"/Script/界面/前言.html"}},[r("strong",[t._v("前言")])])],1)]),t._v(" "),r("li",[r("p",[r("RouterLink",{attrs:{to:"/Script/界面/构造器.html"}},[r("strong",[t._v("构造器")])])],1)]),t._v(" "),r("li",[r("p",[r("RouterLink",{attrs:{to:"/Script/界面/构造方法.html"}},[r("strong",[t._v("构造方法")])])],1)]),t._v(" "),r("li",[r("p",[r("RouterLink",{attrs:{to:"/Script/界面/元类.html"}},[r("strong",[t._v("元类")])])],1)]),t._v(" "),r("li",[r("p",[r("RouterLink",{attrs:{to:"/Script/界面/基类.html"}},[r("strong",[t._v("基类")])])],1)]),t._v(" "),r("li",[r("p",[r("RouterLink",{attrs:{to:"/Script/界面/面板.html"}},[r("strong",[t._v("面板")])])],1)]),t._v(" "),r("li",[r("p",[r("RouterLink",{attrs:{to:"/Script/界面/图像.html"}},[r("strong",[t._v("图像")])])],1)]),t._v(" "),r("li",[r("p",[r("RouterLink",{attrs:{to:"/Script/界面/按钮.html"}},[r("strong",[t._v("按钮")])])],1)]),t._v(" "),r("li",[r("p",[r("RouterLink",{attrs:{to:"/Script/界面/文本.html"}},[r("strong",[t._v("文本")])])],1)]),t._v(" "),r("li",[r("p",[r("RouterLink",{attrs:{to:"/Script/界面/编辑框.html"}},[r("strong",[t._v("编辑框")])])],1)]),t._v(" "),r("li",[r("p",[r("RouterLink",{attrs:{to:"/Script/界面/模型.html"}},[r("strong",[t._v("模型")])])],1)]),t._v(" "),r("li",[r("p",[r("RouterLink",{attrs:{to:"/Script/界面/模型2.html"}},[r("strong",[t._v("模型 2")])])],1)]),t._v(" "),r("li",[r("p",[r("RouterLink",{attrs:{to:"/Script/界面/自定义控件.html"}},[r("strong",[t._v("自定义控件")])])],1)]),t._v(" "),r("li",[r("p",[r("RouterLink",{attrs:{to:"/Script/界面/事件管理.html"}},[r("strong",[t._v("事件管理")])])],1)]),t._v(" "),r("li",[r("p",[r("RouterLink",{attrs:{to:"/Script/界面/热更新.html"}},[r("strong",[t._v("热更新")])])],1)])])])])])])])}),[],!1,null,null,null);r.default=n.exports}}]); -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/js/8.5b3a3bfc.js: -------------------------------------------------------------------------------- 1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[8],{215:function(e,n,t){"use strict";t.r(n);t(208);var i=t(209),a=t.n(i),c={name:"gitalk",mounted(){const e={clientID:"6ee8116016b1decd846e",clientSecret:"f9ba53249cf278670e6d0255c1bc2ce27f5056e7",repo:"embedded-japi-plugin",owner:"w4454962",admin:["w4454962","PhoenixZeng","luciouskami"],distractionFreeMode:!1,title:path,id:path};new a.a(e).render("gitalk-container")}},r=t(2),l=Object(r.a)(c,(function(){this._self._c;return this._m(0)}),[function(){var e=this._self._c;return e("div",{staticClass:"gitalk-container"},[e("div",{attrs:{id:"gitalk-container"}})])}],!1,null,null,null);n.default=l.exports}}]); -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/js/81.3faa1438.js: -------------------------------------------------------------------------------- 1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[81],{290:function(t,r,o){"use strict";o.r(r);var i=o(2),s=Object(i.a)({},(function(){var t=this,r=t._self._c;return r("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[r("h1",{attrs:{id:"界面"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#界面"}},[t._v("#")]),t._v(" 界面")]),t._v(" "),r("p",[t._v("概述一下界面的内容")]),t._v(" "),r("p",[t._v("这套 UI 界面以面向对象为核心思想, 主要以继承为主减少代码重复提高利用率为准则。")]),t._v(" "),r("p",[t._v("创建控件可以用以下 2 种方式")]),t._v(" "),r("ul",[r("li",[r("RouterLink",{attrs:{to:"/Script/界面/构造器.html"}},[r("strong",[t._v("构造器")])])],1),t._v(" "),r("li",[r("RouterLink",{attrs:{to:"/Script/界面/构造方法.html"}},[r("strong",[t._v("构造方法")])])],1)]),t._v(" "),r("p",[t._v("类的层次关系如下")]),t._v(" "),r("ul",[r("li",[r("RouterLink",{attrs:{to:"/Script/界面/基类.html"}},[r("strong",[t._v("基础类")])]),t._v(" "),r("ul",[r("li",[r("RouterLink",{attrs:{to:"/Script/界面/面板.html"}},[r("strong",[t._v("面板类")])]),t._v(" "),r("ul",[r("li",[r("RouterLink",{attrs:{to:"/Script/界面/图像.html"}},[r("strong",[t._v("图像")])])],1),t._v(" "),r("li",[r("RouterLink",{attrs:{to:"/Script/界面/按钮.html"}},[r("strong",[t._v("按钮类")])])],1),t._v(" "),r("li",[r("RouterLink",{attrs:{to:"/Script/界面/文本.html"}},[r("strong",[t._v("文本类")])])],1),t._v(" "),r("li",[r("RouterLink",{attrs:{to:"/Script/界面/编辑框.html"}},[r("strong",[t._v("编辑框")])])],1),t._v(" "),r("li",[r("RouterLink",{attrs:{to:"/Script/界面/模型.html"}},[r("strong",[t._v("模型")])])],1)])],1)])],1)]),t._v(" "),r("p",[t._v("看完之后 可以尝试自己封装")]),t._v(" "),r("ul",[r("li",[r("RouterLink",{attrs:{to:"/Script/界面/自定义控件.html"}},[r("strong",[t._v("自定义控件")])])],1),t._v(" "),r("li",[r("RouterLink",{attrs:{to:"/Script/界面/事件管理.html"}},[r("strong",[t._v("事件管理")])])],1)])])}),[],!1,null,null,null);r.default=s.exports}}]); -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/js/82.157e46b2.js: -------------------------------------------------------------------------------- 1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[82],{291:function(t,s,e){"use strict";e.r(s);var r=e(2),a=Object(r.a)({},(function(){var t=this,s=t._self._c;return s("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[s("h1",{attrs:{id:"图像类-class-texture"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#图像类-class-texture"}},[t._v("#")]),t._v(" 图像类 class.texture")]),t._v(" "),s("p",[t._v("继承自 "),s("RouterLink",{attrs:{to:"/Script/界面/面板.html"}},[t._v("面板类")])],1),t._v(" "),s("p",[t._v("用来显示图像功能 基本参数跟面板一致")]),t._v(" "),s("p",[t._v("所有类型的控件 都带有 normal_image 属性 都可以调用 set_normal_image")]),t._v(" "),s("p",[t._v("单独使用图像的时候可以用该类型控件")])])}),[],!1,null,null,null);s.default=a.exports}}]); -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/js/9.ba38df62.js: -------------------------------------------------------------------------------- 1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[9],{218:function(t,o,r){"use strict";r.r(o);var n=r(2),s=Object(n.a)({},(function(){var t=this,o=t._self._c;return o("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[o("ul",[o("li",[o("RouterLink",{attrs:{to:"/1.44/"}},[o("strong",[t._v("1.44")])]),t._v(" "),o("ul",[o("li",[o("RouterLink",{attrs:{to:"/1.44/获取父控件.html"}},[o("strong",[t._v("获取父控件")])])],1),t._v(" "),o("li",[o("RouterLink",{attrs:{to:"/1.44/获取子控件.html"}},[o("strong",[t._v("获取子控件")])])],1),t._v(" "),o("li",[o("RouterLink",{attrs:{to:"/1.44/设置控件视口.html"}},[o("strong",[t._v("设置控件视口")])])],1),t._v(" "),o("li",[o("RouterLink",{attrs:{to:"/1.44/获取是否窗口化模式.html"}},[o("strong",[t._v("获取是否窗口化模式")])])],1),t._v(" "),o("li",[o("RouterLink",{attrs:{to:"/1.44/设置窗口大小.html"}},[o("strong",[t._v("设置窗口大小")])])],1),t._v(" "),o("li",[o("RouterLink",{attrs:{to:"/1.44/获取商店目标.html"}},[o("strong",[t._v("获取商店目标")])])],1)])],1)])])}),[],!1,null,null,null);o.default=s.exports}}]); -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/js/9.bc6ce26e.js: -------------------------------------------------------------------------------- 1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[9],{219:function(t,o,r){"use strict";r.r(o);var n=r(2),s=Object(n.a)({},(function(){var t=this,o=t._self._c;return o("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[o("ul",[o("li",[o("RouterLink",{attrs:{to:"/1.44/"}},[o("strong",[t._v("1.44")])]),t._v(" "),o("ul",[o("li",[o("RouterLink",{attrs:{to:"/1.44/获取父控件.html"}},[o("strong",[t._v("获取父控件")])])],1),t._v(" "),o("li",[o("RouterLink",{attrs:{to:"/1.44/获取子控件.html"}},[o("strong",[t._v("获取子控件")])])],1),t._v(" "),o("li",[o("RouterLink",{attrs:{to:"/1.44/设置控件视口.html"}},[o("strong",[t._v("设置控件视口")])])],1),t._v(" "),o("li",[o("RouterLink",{attrs:{to:"/1.44/获取是否窗口化模式.html"}},[o("strong",[t._v("获取是否窗口化模式")])])],1),t._v(" "),o("li",[o("RouterLink",{attrs:{to:"/1.44/设置窗口大小.html"}},[o("strong",[t._v("设置窗口大小")])])],1),t._v(" "),o("li",[o("RouterLink",{attrs:{to:"/1.44/获取商店目标.html"}},[o("strong",[t._v("获取商店目标")])])],1)])],1)])])}),[],!1,null,null,null);o.default=s.exports}}]); -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/js/90.6567a5e9.js: -------------------------------------------------------------------------------- 1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[90],{299:function(t,s,i){"use strict";i.r(s);var n=i(2),r=Object(n.a)({},(function(){var t=this._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":this.$parent.slotKey}},[t("h1",{attrs:{id:"热更新"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#热更新"}},[this._v("#")]),this._v(" 热更新")]),this._v(" "),t("ul",[t("li",[this._v("按 F5 即可热更新本地脚本刷新 UI 界面内容 不用重进游戏。")])])])}),[],!1,null,null,null);s.default=r.exports}}]); -------------------------------------------------------------------------------- /docs/.vuepress/dist/assets/js/90.6f28569d.js: -------------------------------------------------------------------------------- 1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[90],{300:function(t,s,i){"use strict";i.r(s);var n=i(2),r=Object(n.a)({},(function(){var t=this._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":this.$parent.slotKey}},[t("h1",{attrs:{id:"热更新"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#热更新"}},[this._v("#")]),this._v(" 热更新")]),this._v(" "),t("ul",[t("li",[this._v("按 F5 即可热更新本地脚本刷新 UI 界面内容 不用重进游戏。")])])])}),[],!1,null,null,null);s.default=r.exports}}]); -------------------------------------------------------------------------------- /docs/.vuepress/dist/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PhoenixZeng/embedded-japi-vue-press/dab57781b268c84f4cd2dd646382c90cc5a9b060/docs/.vuepress/dist/favicon.ico -------------------------------------------------------------------------------- /docs/.vuepress/enhanceApp.js: -------------------------------------------------------------------------------- 1 | // 使用异步函数也是可以的 2 | export default ({ 3 | Vue, // VuePress 正在使用的 Vue 构造函数 4 | options, // 附加到根实例的一些选项 5 | router, // 当前应用的路由实例 6 | siteData, // 站点元数据 7 | isServer // 当前应用配置是处于 服务端渲染 或 客户端 8 | }) => { 9 | // ...做一些其他的应用级别的优化 10 | } -------------------------------------------------------------------------------- /docs/.vuepress/jass.js: -------------------------------------------------------------------------------- 1 | Prism.languages.jass = { 2 | 'comment': [{ 3 | pattern: /(^|[^\\])\/\*[\s\S]*?\*\//, 4 | lookbehind: true 5 | }, { 6 | pattern: /(^|[^\\:])\/\/.*/, 7 | lookbehind: true 8 | }], 9 | 'string': { 10 | pattern: /("|')(?:\\\\|\\?[^\\\r\n])*?\1/, 11 | greedy: true 12 | }, 13 | 'keyword': /\b(?:and|or|not|globals|endglobals|function|endfunction|constant|native|local|type|set|call|takes|returns|extends|array|debug|if|else|elseif|endif|then|loop|endloop|exitwhen|return|library|initializer|needs|uses|requires|endlibrary|scope|endscope|private|public|static|interface|endinterface|extends|struct|endstruct|method|endmethod|this|delegate|operator|module|endmodule|implement|optional|stub|key|thistype|onInit|onDestroy|hook|defaults|execute|evaluate|create|destroy|allocate|deallocate|library|function|constant|onInit|struct|public|private|static|requires|optional|interface|struct|method|operator|module|type|extends|delegate|not|do)\b/, 14 | 'boolean': /\b(?:true|false)\b/, 15 | 'builtin': /\b(?:integer|real|boolean|string|handle|code|nothing|agent|event|player|widget|unit|destructable|item|ability|buff|force|group|trigger|triggercondition|triggeraction|timer|location|region|rect|boolexpr|sound|conditionfunc|filterfunc|unitpool|itempool|race|alliancetype|racepreference|gamestate|igamestate|fgamestate|playerstate|playerscore|playergameresult|unitstate|aidifficulty|eventid|gameevent|playerevent|playerunitevent|unitevent|limitop|widgetevent|dialogevent|unittype|gamespeed|gamedifficulty|gametype|mapflag|mapvisibility|mapsetting|mapdensity|mapcontrol|playerslotstate|volumegroup|camerafield|camerasetup|playercolor|placement|startlocprio|raritycontrol|blendmode|texmapflags|effect|effecttype|weathereffect|terraindeformation|fogstate|fogmodifier|dialog|button|quest|questitem|defeatcondition|timerdialog|leaderboard|multiboard|multiboarditem|trackable|gamecache|version|itemtype|texttag|attacktype|damagetype|weapontype|soundtype|lightning|pathingtype|image|ubersplat|hashtable|mousebuttontype|animtype|subanimtype|framehandle|originframetype|framepointtype|textaligntype|frameeventtype|oskeytype|abilityintegerfield|abilityrealfield|abilitybooleanfield|abilitystringfield|abilityintegerlevelfield|abilityreallevelfield|abilitybooleanlevelfield|abilitystringlevelfield|abilityintegerlevelarrayfield|abilityreallevelarrayfield|abilitybooleanlevelarrayfield|abilitystringlevelarrayfield|unitintegerfield|unitrealfield|unitbooleanfield|unitstringfield|unitweaponintegerfield|unitweaponrealfield|unitweaponbooleanfield|unitweaponstringfield|itemintegerfield|itemrealfield|itembooleanfield|itemstringfield|movetype|targetflag|armortype|heroattribute|defensetype|regentype|unitcategory|pathingflag|minimapicon|commandbuttoneffect)\b/, 16 | 'number': /\b-?(?:0[bo])?(?:(?:\d|0x[\da-f])[\da-f]*\.?\d*|\.\d+)(?:e[+-]?\d+)?j?\b/i, 17 | 'operator': /[-+%=]=?|!=|\*\*?=?|\/\/?=?|<[<=>]?|>[=>]?|[&|^~]|\b(?:or|and|not)\b/, 18 | 'punctuation': /(\.|[..]|->)/, 19 | 'annotation': /@\w+(\s|[(])/ 20 | } -------------------------------------------------------------------------------- /docs/.vuepress/plugin.js: -------------------------------------------------------------------------------- 1 | const moment = require("moment"); 2 | 3 | module.exports = { 4 | '@vuepress/active-header-links': { 5 | sidebarLinkSelector: '.sidebar-link', 6 | headerAnchorSelector: '.header-anchor' 7 | }, 8 | // '@vuepress/pwa':{ 9 | // serviceWorker: true, 10 | // updatePopup: { 11 | // message : '此文件似乎有更新', 12 | // buttonText: '刷新' 13 | // } 14 | // }, 15 | '@vuepress/back-to-top': { 16 | 17 | }, 18 | '@vuepress/last-updated': { 19 | transformer: (timestamp, lang) => { 20 | // 不要忘了安装 moment 21 | moment.locale('zh-cn') 22 | return moment(timestamp).format('lll') 23 | } 24 | }, 25 | 'check-md': { 26 | 27 | }, 28 | 'seo': { 29 | 30 | }, 31 | 'pangu': { 32 | 33 | }, 34 | 'code-copy': { 35 | 36 | }, 37 | 'vuepress-plugin-analytics': { 38 | ba: '7d4d1b04612583f505a991ef2d6bf18d', // 662dade0b3fe9911e80442e86935e233 39 | ga: '' // UA-00000000-0 40 | 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /docs/.vuepress/public/assets/img/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PhoenixZeng/embedded-japi-vue-press/dab57781b268c84f4cd2dd646382c90cc5a9b060/docs/.vuepress/public/assets/img/logo.png -------------------------------------------------------------------------------- /docs/.vuepress/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PhoenixZeng/embedded-japi-vue-press/dab57781b268c84f4cd2dd646382c90cc5a9b060/docs/.vuepress/public/favicon.ico -------------------------------------------------------------------------------- /docs/.vuepress/sidebar.js: -------------------------------------------------------------------------------- 1 | const getAutoBarConfig = require("./bar"); 2 | const bar = getAutoBarConfig({ 3 | filter: (meta) => meta.autoIgnore !== true, 4 | stripNumbers: false, 5 | addReadMeToFirstGroup: false, 6 | }) 7 | let autoSidebar = bar.sidebar 8 | console.log('autoSidebar', autoSidebar) 9 | 10 | let sidebar = [ 11 | { 12 | title: '标准', // 必要的 13 | path: '/', // 可选的, 标题的跳转链接,应为绝对路径且必须存在 14 | collapsable: false, // 可选的, 默认值是 true, 15 | sidebarDepth: 5, // 可选的, 默认值是 1 16 | children: [ 17 | ['/', '首页'], 18 | ['/Japi/', 'Japi'], 19 | ['/Lua/', 'Lua'], 20 | ['/Script/', '界面'], 21 | ] 22 | }, 23 | { 24 | title: '更新', 25 | children: [ 26 | ['/1.44/', '1.44更新'], 27 | ['/1.46/', '1.46更新'], 28 | ['/1.47/', '1.47更新'], 29 | ['/1.48/', '1.48更新'], 30 | ['/1.49/', '1.49更新'], 31 | ], 32 | collapsable: false, // 可选的, 默认值是 true, 33 | initialOpenGroupIndex: -1 // 可选的, 默认值是 0 34 | } 35 | ] 36 | let autoMap = {} 37 | autoSidebar.forEach(dir => { 38 | if (typeof dir === 'string') { 39 | return 40 | } 41 | 42 | dir.children.forEach(child => { 43 | if (typeof child !== 'string') { 44 | console.log('dir.children.object', child) 45 | } 46 | }) 47 | autoMap['/' + dir.title + '/'] = dir.children 48 | }); 49 | 50 | console.log('autoMap', autoMap) 51 | sidebar = sidebar.map(item => { 52 | if (item.children) { 53 | item.children = item.children.map(child => { 54 | let path = child[0] 55 | let title = child[1] 56 | 57 | if (autoMap[path]) { 58 | return { 59 | title: title, 60 | path: path, 61 | children: autoMap[path], 62 | } 63 | } 64 | return child 65 | }) 66 | } 67 | return item 68 | }) 69 | console.log(JSON.stringify(sidebar)) 70 | 71 | console.log("") 72 | console.log("") 73 | console.log("") 74 | console.log("") 75 | 76 | module.exports = sidebar -------------------------------------------------------------------------------- /docs/1.44/README.md: -------------------------------------------------------------------------------- 1 | --- 2 | autoIgnore: true 3 | --- 4 | 5 | - [**1.44**](./) 6 | - [**获取父控件**](./获取父控件.md) 7 | - [**获取子控件**](./获取子控件.md) 8 | - [**设置控件视口**](./设置控件视口.md) 9 | - [**获取是否窗口化模式**](./获取是否窗口化模式.md) 10 | - [**设置窗口大小**](./设置窗口大小.md) 11 | - [**获取商店目标**](./获取商店目标.md) 12 | -------------------------------------------------------------------------------- /docs/1.44/获取商店目标.md: -------------------------------------------------------------------------------- 1 | 2 | # 获取商店目标 3 | ```jass 4 | function GetStoreTarget takes unit store, player p returns unit 5 | ``` 6 | # 描述 7 | 获取指定商店 选择 指定玩家的哪个单位 返回值是同步的接口 可以安全使用 8 | 9 | # 参数 10 | 类型|名字|说明 11 | --|--|-- 12 | 单位|store| 商店单位 拥有 出售物品 选择英雄 的单位 13 | 玩家|p| 每个在线的玩家 14 | 15 | 如果商店周围没有可选的人的时候 会返回 0 16 | 17 | # 返回值 18 | 类型|说明 19 | --|-- 20 | 单位| 被选中的单位 21 | 22 | 23 | # 例子 24 | 25 | ```jass 26 | local unit u 27 | local integer i = 0 28 | loop 29 | exitwhen i > 12 30 | set u = GetStoreTarget(store, Player(i)) 31 | if u != null then 32 | call BJDebugMsg("商店 " + GetUnitName(store) + "选中了 " + GetPlayerName(Player(i)) + " 的 " + GetUnitName(u)) 33 | endif 34 | set i = i + 1 35 | endloop 36 | ``` 37 | 38 | ```lua 39 | local japi = require 'jass.japi' 40 | 41 | 42 | for i = 0, 11 do 43 | local u = japi.GetStoreTarget(store, jass.Player(i)) 44 | if u ~= 0 then 45 | print('玩家' .. i .. '的' .. jass.GetUnitName(u), '被商店', store, '选中了') 46 | end 47 | end 48 | ``` 49 | 50 | -------------------------------------------------------------------------------- /docs/1.44/获取子控件.md: -------------------------------------------------------------------------------- 1 | 2 | # 获取子控件 3 | ```jass 4 | function FrameGetParent takes integer frame, integer last returns integer 5 | ``` 6 | # 描述 7 | 获取指定frame的子控件 不能对simple类型的控件使用 8 | 9 | 10 | # 参数 11 | 类型|名字|说明 12 | --|--|-- 13 | 整数|frame| 控件地址 14 | 整数|last| 上一个控件的地址 第一次读可以填0 15 | 16 | # 返回值 17 | 类型|说明 18 | --|-- 19 | 整数| 返回的控件地址 20 | 21 | 22 | # 例子 23 | 24 | ```jass 25 | 26 | 27 | local integer child = FrameGetChilds(frame, 0) 28 | 29 | loop 30 | exitwhen child == 0 31 | call BJDebugMsg(I2S(child)) 32 | set child = FrameGetChilds(frame, child) 33 | endloop 34 | 35 | ``` 36 | 37 | ```lua 38 | local japi = require 'jass.japi' 39 | 40 | local function get_childs(frame) 41 | local list = {} 42 | local child = japi.FrameGetChilds(frame, 0) 43 | while child ~= 0 do 44 | list[#list + 1] = child 45 | child = japi.FrameGetChilds(panel._id, child) 46 | end 47 | return list 48 | end 49 | 50 | 51 | 52 | ``` 53 | 54 | -------------------------------------------------------------------------------- /docs/1.44/获取是否窗口化模式.md: -------------------------------------------------------------------------------- 1 | 2 | # 获取是否窗口化模式 3 | ```jass 4 | function IsWindowMode takes nothing returns boolean 5 | ``` 6 | # 描述 7 | 全屏状态下 返回false 8 | 窗口化模式 返回true 9 | 10 | # 返回值 11 | 类型|说明 12 | --|-- 13 | 布尔值| true | false 14 | 15 | 16 | # 例子 17 | 18 | ```jass 19 | 20 | local boolean mode = IsWindowMode() 21 | 22 | ``` 23 | 24 | ```lua 25 | local japi = require 'jass.japi' 26 | 27 | local mode = japi.IsWindowMode() 28 | 29 | ``` 30 | 31 | -------------------------------------------------------------------------------- /docs/1.44/获取父控件.md: -------------------------------------------------------------------------------- 1 | 2 | # 获取父控件 3 | ```jass 4 | function FrameGetParent takes integer frame returns integer 5 | ``` 6 | # 描述 7 | 获取指定frame的父控件 不能对simple类型的控件使用 8 | 可以获取 大头像模型 的父控件 然后为其新建子控件 用来放置在所有界面之下 9 | 10 | 11 | # 参数 12 | 类型|名字|说明 13 | --|--|-- 14 | 整数|frame| 控件地址 15 | 16 | 17 | # 返回值 18 | 类型|说明 19 | --|-- 20 | 整数| 控件地址 21 | 22 | 23 | # 例子 24 | 25 | ```jass 26 | 27 | local integer parent = FrameGetParent(frame) 28 | 29 | ``` 30 | 31 | ```lua 32 | local japi = require 'jass.japi' 33 | 34 | local parent = japi.FrameGetParent(frame) 35 | 36 | ``` 37 | 38 | -------------------------------------------------------------------------------- /docs/1.44/设置控件视口.md: -------------------------------------------------------------------------------- 1 | 2 | # 设置控件视口 3 | ```jass 4 | function FrameSetViewPort takes integer frame, boolean enable returns nothing 5 | 6 | ``` 7 | # 描述 8 | 设置开启 设置控件视口 比如 底板开启后 他的子控件 在边缘 超出部分不会渲染 9 | 10 | # 参数 11 | 类型|名字|说明 12 | --|--|-- 13 | 整数|frame| 控件地址 14 | 15 | 16 | 17 | # 例子 18 | 19 | ```jass 20 | 21 | 22 | FrameSetViewPort(frame, true) 23 | 24 | ``` 25 | 26 | ```lua 27 | 28 | panel:set_view_port(true) 29 | 30 | 31 | ``` 32 | 33 | -------------------------------------------------------------------------------- /docs/1.44/设置窗口大小.md: -------------------------------------------------------------------------------- 1 | 2 | # 设置窗口大小 3 | ```jass 4 | function SetWindowSize takes integer width, integer height returns nothing 5 | ``` 6 | # 描述 7 | 修改窗口大小 可以强行限制用户 窗口模式下的 窗口比例 16/9 8 | 9 | # 参数 10 | 类型|名字|说明 11 | --|--|-- 12 | 整数|width| 窗口宽度 13 | 整数|height| 窗口高度 14 | 15 | 16 | # 返回值 17 | 类型|说明 18 | --|-- 19 | 整数| 控件地址 20 | 21 | 22 | # 例子 23 | 24 | ```jass 25 | 26 | call SetWindowSize(1024, 768) 27 | ``` 28 | 29 | ```lua 30 | 31 | local japi = require 'jass.japi' 32 | 33 | local GetWindowWidth = japi.GetWindowWidth 34 | local GetWindowHeight = japi.GetWindowHeight 35 | local IsWindowMode = japi.IsWindowMode 36 | local SetWindowSize = japi.SetWindowSize 37 | 38 | --窗口模式下 强行 16:9 39 | ac.loop(33, function () 40 | local w, h = GetWindowWidth(), GetWindowHeight() 41 | if w / h ~= 16 / 9 and (IsWindowMode()) then 42 | SetWindowSize(h / 9 * 16, h) 43 | end 44 | 45 | end) 46 | 47 | 48 | ``` 49 | 50 | -------------------------------------------------------------------------------- /docs/1.46/README.md: -------------------------------------------------------------------------------- 1 | --- 2 | autoIgnore: true 3 | --- 4 | 5 | - [**1.46**](./) 6 | - [**绑定特效**](./绑定特效.md) 7 | - [**解除特效绑定**](./解除特效绑定.md) 8 | - [**播放特效动画**](./播放特效动画.md) 9 | -------------------------------------------------------------------------------- /docs/1.46/播放特效动画.md: -------------------------------------------------------------------------------- 1 | 2 | # 播放特效动画 3 | ```jass 4 | function EXPlayEffectAnimation takes effect Effect, string animation_name, string link_name returns nothing 5 | 6 | ``` 7 | # 描述 8 | 可以让绑定在单位身上的特效 分离出来, 被分离的特效能设置坐标 跟缩放、 9 | 10 | # 参数 11 | 类型|名字|说明 12 | --|--|-- 13 | 特效|handle| 绑定的特效 14 | 动画名|animation_name| 字符串动画名字 15 | 链接名|link_name| 变身动画才需要的链接名 一般情况填 "" 空字符串就行、 16 | 17 | # 例子 18 | 19 | ```jass 20 | 21 | call EXPlayEffectAnimation(eff, "attack", "") 22 | 23 | ``` 24 | 25 | ```lua 26 | 27 | 28 | local japi = require 'jass.japi' 29 | 30 | japi.EXPlayEffectAnimation(eff, "attack", "") 31 | 32 | ``` 33 | 34 | -------------------------------------------------------------------------------- /docs/1.46/绑定特效.md: -------------------------------------------------------------------------------- 1 | 2 | # 绑定特效 3 | ```jass 4 | function BindEffect takes widget Handle, string socket, effect Effect returns nothing 5 | 6 | ``` 7 | # 描述 8 | 主动绑定effect 到 handle 上面 9 | 可以单位绑 特效 10 | 可以特效绑 特效 11 | 12 | # 参数 13 | 类型|名字|说明 14 | --|--|-- 15 | 对象|handle| 可以是单位 特效 物品 16 | 绑点|socket| 绑点名字 17 | 特效|handle| 绑定的特效 18 | 19 | 20 | # 例子 21 | 22 | ```jass 23 | 24 | local effect eff = AddSpecialEffect([[units\human\Peasant\Peasant.mdl]], 0, 0) 25 | call BindEffect(GetTriggerUnit(), eff) 26 | 27 | ``` 28 | 29 | ```lua 30 | 31 | 32 | local jass = require 'jass.common' 33 | local japi = require 'jass.japi' 34 | 35 | --创建单位 36 | local unit = jass.CreateUnit(jass.Player(0), string.unpack('>I4', 'Hblm'), -500, 0, 0) 37 | 38 | 39 | --创建特效翅膀 40 | local eff = jass.AddSpecialEffect([[f3d317310ff130bcc7dd72266b364acc.mdx]], 200, 0) 41 | 42 | local u1 = jass.AddSpecialEffect([[units\human\Peasant\Peasant.mdl]], 200, 0) 43 | 44 | local u2 = jass.AddSpecialEffect([[units\human\Peasant\Peasant.mdl]], 200, 0) 45 | 46 | 47 | --给单位头顶绑个农民 48 | japi.BindEffect(unit, "overhead", u1) 49 | 50 | --给农民头顶再绑个农民 51 | japi.BindEffect(u1, "overhead", u2) 52 | 53 | --给最上面的农民再绑对翅膀 54 | japi.BindEffect(u2, "chest", eff) 55 | 56 | 57 | ``` 58 | 59 | -------------------------------------------------------------------------------- /docs/1.46/解除特效绑定.md: -------------------------------------------------------------------------------- 1 | 2 | # 解除特效绑定 3 | ```jass 4 | function UnBindEffect takes effect Effect returns nothing 5 | 6 | ``` 7 | # 描述 8 | 可以让绑定在单位身上的特效 分离出来, 被分离的特效能设置坐标 跟缩放、 9 | 10 | # 参数 11 | 类型|名字|说明 12 | --|--|-- 13 | 特效|handle| 绑定的特效 14 | 15 | 16 | # 例子 17 | 18 | ```jass 19 | 20 | call UnBindEffect(eff) 21 | 22 | ``` 23 | 24 | ```lua 25 | 26 | 27 | local jass = require 'jass.common' 28 | local japi = require 'jass.japi' 29 | 30 | --创建单位 31 | local unit = jass.CreateUnit(jass.Player(0), string.unpack('>I4', 'Hblm'), -500, 0, 0) 32 | 33 | 34 | --创建特效翅膀 35 | local eff = jass.AddSpecialEffect([[f3d317310ff130bcc7dd72266b364acc.mdx]], 200, 0) 36 | 37 | 38 | --绑定翅膀 39 | japi.BindEffect(unit, "chest", eff) 40 | 41 | 42 | --5秒后移除翅膀 43 | ac.wait(5000, function () 44 | 45 | --解除特效绑定 46 | japi.UnBindEffect(eff) 47 | --隐藏特效 (隐藏后再销毁 可以跳过死亡动画,也可以让没有死亡动画的特效立即消失) 48 | japi.EXSetEffectVisible(eff, false) 49 | --销毁特效 50 | jass.DestroyEffect(eff) 51 | end) 52 | 53 | ``` 54 | 55 | -------------------------------------------------------------------------------- /docs/1.47/README.md: -------------------------------------------------------------------------------- 1 | --- 2 | autoIgnore: true 3 | --- 4 | 5 | - [**1.47**](./) 6 | - [**获取 uid**](./获取uid.md) 7 | - [**获取玩家选择单位列表**](./获取玩家选择单位列表.md) 8 | - [**获取特效颜色**](./获取特效颜色.md) 9 | - [**粒子缩放**](./粒子缩放.md) 10 | - [**ui 屏幕限制接口**](./ui屏幕限制接口.md) 11 | -------------------------------------------------------------------------------- /docs/1.47/ui屏幕限制接口.md: -------------------------------------------------------------------------------- 1 | 2 | # ui屏幕限制接口 3 | ```jass 4 | function SetFrameLimitScreen takes boolean is_limit returns nothing 5 | 6 | ``` 7 | # 描述 8 | 内置默认是 解锁frame控件的 屏幕限制的 就是可以随便移动到屏幕之外的位置, 但是有个别用户 依赖这个限制 用网易的接口写了ui 导致加了内置之后 位置变了, 故此新增这个接口 自行决定是否解锁。 9 | # 参数 10 | 类型|名字|说明 11 | --|--|-- 12 | 布尔值|is_limit| 填true 是锁定 填false 是解锁 13 | 14 | 15 | # 例子 16 | 17 | ```jass 18 | 19 | call SetFrameLimitScreen(true) //重新锁定 20 | ``` 21 | 22 | 23 | ```lua 24 | 25 | 26 | local japi = require 'jass.japi' 27 | 28 | japi.SetFrameLimitScreen(true) //重新锁定 29 | 30 | ``` 31 | 32 | -------------------------------------------------------------------------------- /docs/1.47/粒子缩放.md: -------------------------------------------------------------------------------- 1 | 2 | # 粒子缩放 3 | ```jass 4 | function SetPariticle2Size takes handle Handle, real scale returns nothing 5 | 6 | function FrameSetModelPariticle2Size takes integer frame, real scale returns nothing 7 | 8 | 9 | ``` 10 | # 描述 11 | 12 | SetPariticle2Size 可以用来 缩放 单位/特效的 粒子2 的模型缩放 相当于是绿苹果里中间那3个缩放至 13 | 14 | 15 | FrameSetModelPariticle2Size 是用来缩放 ui模型上面的粒子2的 16 | 17 | 18 | # 参数 19 | 类型|名字|说明 20 | --|--|-- 21 | 单位/特效/ui模型|Handle/frame| 句柄 22 | 23 | 实数|scale| 这次的缩放值 是乘法累计的。 24 | 25 | 26 | # 返回值 27 | 类型|说明 28 | --|-- 29 | integer|颜色的16进制 ARGB 30 | 31 | 32 | # 例子 33 | 34 | ```jass 35 | local unit u = GetTriggerUnit() 36 | 37 | call SetPariticle2Size(u, 0.5) // 缩小一半 38 | 39 | call SetPariticle2Size(u, 0.5) // 再缩小一半 相当于原本的1/4 40 | 41 | call SetPariticle2Size(u, 4) //回到原始尺寸 42 | 43 | ``` 44 | 45 | ```lua 46 | 47 | local jass = require 'jass.common' 48 | local japi = require 'jass.japi' 49 | 50 | local u = jass.GetTriggerUnit() 51 | 52 | japi.SetPariticle2Size(u, 0.5) // 缩小一半 53 | 54 | japi.SetPariticle2Size(u, 0.5) // 再缩小一半 相当于原本的1/4 55 | 56 | japi.SetPariticle2Size(u, 4) //回到原始尺寸 57 | 58 | 59 | --例如以下代码 是将火凤凰投射物 缩小1万倍 再绑定到鼠标上, 鼠标拖丝的效果 60 | 61 | local scale = 0.0001 62 | local model = class.model:builder 63 | { 64 | x = 0, 65 | y = 0, 66 | w = 300, 67 | h = 300, 68 | model = [[Abilities\Weapons\PhoenixMissile\Phoenix_Missile.mdl]], 69 | size = scale, 70 | animation_index = 1, 71 | } 72 | 73 | function model:set_pariticle2_size(size) 74 | size = math.max(0.0001, size) 75 | if self.last_size then 76 | japi.FrameSetModelPariticle2Size(self._id, 1 / self.last_size) 77 | end 78 | japi.FrameSetModelPariticle2Size(self._id, size) 79 | self.last_size = size 80 | end 81 | 82 | model:set_pariticle2_size(scale) 83 | 84 | 85 | ac.loop(33, function () 86 | 87 | local x, y = game.get_mouse_pos() 88 | model:set_model_offset(x, y - model.h) 89 | end) 90 | 91 | 92 | ``` 93 | 94 | -------------------------------------------------------------------------------- /docs/1.47/获取uid.md: -------------------------------------------------------------------------------- 1 | 2 | # 获取uid 3 | ```jass 4 | function GetUserId takes nothing returns integer 5 | 6 | function GetUserIdEx takes nothing returns string 7 | 8 | ``` 9 | # 描述 10 | 异步获取 当前玩家在11或网易平台游戏时的uid, 本地返回0 11 | 12 | 返回值是异步的 建议先同步后再使用 13 | 14 | 这2个接口一般情况下 返回值都是一致的 有万分之一局的概率 2个接口会返回不一致, 自己验证使用吧。 15 | 16 | 网易的uid获取率 达到99.999% 目前来说测试是稳定 有效的 17 | 11的uid还没有经过测试, 需要自行测试 小心使用 切记。 18 | # 返回值 19 | 类型|说明 20 | --|-- 21 | integer|整数类型uid 22 | string|字符串类型uid 23 | 24 | 25 | # 例子 26 | 27 | ```jass 28 | 29 | local string strId = GetUserIdEx() 30 | 31 | local integer uid = GetUserId() 32 | 33 | ``` 34 | 35 | ```lua 36 | 37 | 38 | local japi = require 'jass.japi' 39 | 40 | 41 | local strId = japi.GetUserIdEx() 42 | 43 | local uid = japi.GetUserId() 44 | 45 | ``` 46 | 47 | -------------------------------------------------------------------------------- /docs/1.47/获取特效颜色.md: -------------------------------------------------------------------------------- 1 | # 获取特效颜色 2 | 3 | ```jass 4 | function EXGetEffectColor takes effect effect_handle returns integer 5 | 6 | ``` 7 | 8 | # 描述 9 | 10 | 获取特效的颜色 跟 [设置特效颜色](/Japi/设置特效颜色) 配合使用 11 | 12 | # 参数 13 | 14 | | 类型 | 名字 | 说明 | 15 | | ---- | ------ | ---- | 16 | | 特效 | handle | 句柄 | 17 | 18 | # 返回值 19 | 20 | | 类型 | 说明 | 21 | | ------- | ------------------- | 22 | | integer | 颜色的 16 进制 ARGB | 23 | 24 | # 例子 25 | 26 | ```jass 27 | 28 | local integer color = EXGetEffectColor() 29 | 30 | ``` 31 | 32 | ```lua 33 | 34 | 35 | local japi = require 'jass.japi' 36 | 37 | local color = japi.EXGetEffectColor() 38 | 39 | ``` 40 | -------------------------------------------------------------------------------- /docs/1.47/获取玩家选择单位列表.md: -------------------------------------------------------------------------------- 1 | # 获取玩家选择单位列表 2 | 3 | # 描述 4 | 5 | 这个接口是封装到 lua 里的, 只给 lua 使用, jass 要用自己用[jass 交互](/Lua/jass交互)自行封装 6 | 7 | 返回值是异步的 请小心使用 8 | 9 | # 返回值 10 | 11 | | 类型 | 说明 | 12 | | ----- | ----------------------- | 13 | | table | 返回一个表 有可能是 nil | 14 | 15 | # 例子 16 | 17 | ```lua 18 | local jass = require 'jass.common' 19 | 20 | local message = require 'jass.message' 21 | 22 | ac.loop(1000, function () 23 | local list = message.get_select_list() 24 | 25 | if list == nil or #list == 0 then --没有选人 26 | return 27 | end 28 | 29 | print('当前玩家选择了', #list, table.unpack(list)) 30 | 31 | for i, handle in ipairs(list) do 32 | print(i, handle, jass.GetUnitName(handle)) 33 | end 34 | end) 35 | 36 | ``` 37 | -------------------------------------------------------------------------------- /docs/1.48/README.md: -------------------------------------------------------------------------------- 1 | --- 2 | autoIgnore: true 3 | --- 4 | 5 | - [**1.48**](./) 6 | - [**修改单位移动类型**](./修改单位移动类型.md) 7 | - [**修改单位碰撞体积大小**](./修改单位碰撞体积大小.md) 8 | - [**获取物品技能 handle**](./获取物品技能handle.md) 9 | - [**新增 ui 接口**](./新增ui接口.md) 10 | -------------------------------------------------------------------------------- /docs/1.48/修改单位碰撞体积大小.md: -------------------------------------------------------------------------------- 1 | 2 | # 修改单位碰撞体积大小 3 | ```jass 4 | function SetUnitCollisionSize takes unit u, real size returns nothing 5 | 6 | ``` 7 | # 描述 8 | 跟物编一样 修改单位的碰撞体积 会刷新寻路, 依然受到魔兽碰撞上限的限制 9 | 10 | 就是 当你 size 填 512的时候 在远距离走路时 魔兽寻路 会按照 512的碰撞体积去搜索路线, 在近距离时 魔兽会按照最高上限 估计128 去搜索寻路 11 | 单位实际碰撞 也最高只有128 12 | 13 | 14 | # 参数 15 | 类型|名字|说明 16 | --|--|-- 17 | 单位|u| 填指定单位 18 | 实数|size| 碰撞大小 19 | 20 | 21 | # 例子 22 | 23 | ```jass 24 | 25 | // 执行以下函数 你会看到 2堆人 按照不同的碰撞大小进行排列。 26 | 27 | function test takes nothing returns nothing 28 | local integer i = 0 29 | local unit u 30 | loop 31 | exitwhen i == 100 32 | set i = i + 1 33 | set u = CreateUnit(Player(0), 'hpea', 0, 0, 0) 34 | 35 | call SetUnitCollisionSize(u, 256.00) //修改碰撞 36 | 37 | call SetUnitPosition(u, 0, 0) //刷新单位位置 38 | endloop 39 | 40 | set i = 0 41 | 42 | 43 | loop 44 | exitwhen i == 100 45 | set i = i + 1 46 | set u = CreateUnit(Player(0), 'hpea', 2000, 0, 0) 47 | 48 | call SetUnitCollisionSize(u, 8.00) //修改碰撞 49 | 50 | call SetUnitPosition(u, 2000, 0) //刷新单位位置 51 | endloop 52 | 53 | endfunction 54 | 55 | 56 | ``` 57 | 58 | 59 | ```lua 60 | 61 | 62 | local japi = require 'jass.japi' 63 | local jass = require 'jass.common' 64 | 65 | 66 | -- 执行以下函数 你会看到 2堆人 按照不同的碰撞大小进行排列。 67 | function test() 68 | local u 69 | for i = 1, 100 do 70 | u = jass.CreateUnit(jass.Player(0), string.unpack('>I4', 'hpea'), 0, 0, 0) 71 | 72 | japi.SetUnitCollisionSize(u, 8) --修改碰撞 73 | 74 | jass.SetUnitPosition(u, 0, 0) --刷新单位位置 75 | end 76 | 77 | 78 | for i = 1, 100 do 79 | u = jass.CreateUnit(jass.Player(0), string.unpack('>I4', 'hpea'), 2000, 0, 0) 80 | 81 | japi.SetUnitCollisionSize(u, 256) --修改碰撞 82 | 83 | jass.SetUnitPosition(u, 2000, 0) --刷新单位位置 84 | end 85 | end 86 | 87 | ``` 88 | 89 | -------------------------------------------------------------------------------- /docs/1.48/修改单位移动类型.md: -------------------------------------------------------------------------------- 1 | 2 | # 修改单位移动类型 3 | ```jass 4 | function SetUnitMoveType takes unit u, string type returns nothing 5 | 6 | ``` 7 | # 描述 8 | 修改指定单位的移动类型 按字符串修改 9 | 类型可以是跟物编里效果一样 10 | type 有以下几个数值 11 | ``` 12 | "none" = 没有, 无视碰撞 13 | "foot" = 步行, 地面碰撞跟寻路 14 | "horse" = 骑马 15 | "fly" = 飞行 具有飞行视野,寻路能穿越树木跟悬崖,可以直接设置飞行高度 不用乌鸦形态了 16 | "hover" = 浮空 不会踩中地雷 17 | "float" = 漂浮 只能在深水里活动 不能在地面活动 18 | "amph" = 两栖 19 | "unbuild" = 未知 自己测试 20 | ``` 21 | 22 | # 参数 23 | 类型|名字|说明 24 | --|--|-- 25 | 单位|u| 填指定单位 26 | 字符串|type| 填入上面预设好的类型字符串 27 | 28 | 29 | # 例子 30 | 31 | ```jass 32 | 33 | local unit u = CreateUnit(Player(0), 'hpea', 0, 0, 0) 34 | 35 | call SetUnitMoveType(u, "fly") //设置农民飞行 36 | call SetUnitFlyHeight(u, 200, 99999) //飞行类型可以直接设置飞行高度 37 | ``` 38 | 39 | 40 | ```lua 41 | 42 | 43 | local japi = require 'jass.japi' 44 | local jass = require 'jass.common' 45 | 46 | local unit u = jass.CreateUnit(jass.Player(0), string.unpack('>I4', 'hpea'), 0, 0, 0) 47 | 48 | japi.SetUnitMoveType(u, "fly") --设置农民飞行 49 | jass.SetUnitFlyHeight(u, 200, 99999) --飞行类型可以直接设置飞行高度 50 | 51 | ``` 52 | 53 | -------------------------------------------------------------------------------- /docs/1.48/获取物品技能handle.md: -------------------------------------------------------------------------------- 1 | # 获取物品技能 handle 2 | 3 | ```jass 4 | function GetItemAbility takes item Item, integer slot returns ability 5 | 6 | ``` 7 | 8 | # 描述 9 | 10 | 获取物品技能的 handle 返回值 可以用在 ydjapi 的技能接口 11 | 12 | # 参数 13 | 14 | | 类型 | 名字 | 说明 | 15 | | ---- | ---- | ----------------- | 16 | | 物品 | Item | 指定物品 | 17 | | 整数 | slot | 指定槽位 0 从开始 | 18 | 19 | # 返回值 20 | 21 | | 类型 | 说明 | 22 | | ------- | ---- | 23 | | ability | 技能 | 24 | 25 | # 例子 26 | 27 | 可以看 [_智能施法_](/Script/例子/智能施法.md) 里面关于这条 api 的应用 28 | -------------------------------------------------------------------------------- /docs/1.49/README.md: -------------------------------------------------------------------------------- 1 | --- 2 | autoIgnore: true 3 | --- 4 | 5 | - [**1.49**](./) 6 | - [**物品japi**](./物品japi.md) 7 | - [**装饰物japi**](./装饰物japi.md) 8 | - [**技能japi**](./技能japi.md) 9 | - [**其他api**](./其他api.md) -------------------------------------------------------------------------------- /docs/1.49/其他api.md: -------------------------------------------------------------------------------- 1 | # japi 2 | 3 | 额外赠送的api 4 | 5 | ```jass 6 | 7 | //获取指定坐标地形高度 异步弹坑可能导致玩家地面高度是异步的 8 | function GetTerrainZ takes real x, real y returns real 9 | 10 | 11 | //判断地形碰撞状态 前面4个参数是矩形, 后mark可以叠加判断地形碰撞状态 比如 0x2 + 0x8 + 0x20 12 | //mark 可通行地面 0x2 13 | //mark 空中单位可通行 0x4 14 | //mark 可建造地面 0x8 15 | //mark 不是荒芜之地 0x20 16 | //mark 可通行海面 0x40 17 | //mark 两栖单位可通行 0x80 18 | function GetTerrainMark takes real minx, real miny, real maxx, real maxy, integer mark returns boolean 19 | 20 | 21 | ``` 22 | 23 | -------------------------------------------------------------------------------- /docs/1.49/物品japi.md: -------------------------------------------------------------------------------- 1 | # 物品japi 2 | 3 | ```jass 4 | 5 | //屏蔽所有物品在地面的指向提示 开局调用一次即可 6 | function DisableItemPreselectUi takes nothing returns nothing 7 | 8 | //异步获取当前选中的物品, 没有延迟但是返回值是异步的 9 | function GetRealSelectItem takes nothing returns item 10 | 11 | //获取玩家当前选中的物品, 返回值是同步的,需要提供玩家参数 12 | function GetSelectItem takes player Player returns item 13 | 14 | //设置物品模型缩放比例 15 | function EXSetItemSize takes item Handle, real size returns nothing 16 | 17 | //获取物品模型缩放比例 18 | function EXGetItemSize takes item Handle returns real 19 | 20 | //修改物品颜色 透明值有效 21 | function EXSetItemColor takes item Handle, integer color returns nothing 22 | 23 | //物品模型 x轴旋转 乘法计算 24 | function EXItemMatRotateX takes item Handle, real rotate_x returns nothing 25 | 26 | //物品模型 y轴旋转 乘法计算 27 | function EXItemMatRotateY takes item Handle, real rotate_y returns nothing 28 | 29 | //物品模型 z轴旋转 乘法计算 30 | function EXItemMatRotateZ takes item Handle, real rotate_z returns nothing 31 | 32 | //物品模型 xyz轴缩放 乘法计算 33 | function EXItemMatRotateY takes item Handle, real scale_x, real scale_y, real scale_z returns nothing 34 | 35 | //物品模型恢复 36 | function EXItemMatReset takes item Handle returns nothing 37 | 38 | 39 | ``` 40 | -------------------------------------------------------------------------------- /docs/1.49/装饰物japi.md: -------------------------------------------------------------------------------- 1 | # 装饰物japi 2 | 3 | ```jass 4 | 5 | //获取装饰物最大数量 6 | //返回值:装饰物最大数量 循环1~最大数量 用循环数 作为装饰物的索引 7 | function GetDoodadCount takes nothing returns integer 8 | 9 | 10 | //获取装饰物的类型id 11 | //参数:装饰物索引 12 | //返回值:装饰物的物编类型id 13 | function GetDoodadTypeId takes integer index returns integer 14 | 15 | 16 | //设置装饰物的模型 如果无效的模型路径 会是一个 绿色的方块 17 | //参数:装饰物索引 模型路径 18 | //返回值:无 19 | function SetDoodadModel takes integer index, string model returns nothing 20 | 21 | 22 | //设置装饰物的队伍颜色 23 | //参数:装饰物索引 队伍颜色 0~15 24 | //返回值:无 25 | function SetDoodadTeamColor takes integer index, integer team_color returns nothing 26 | 27 | 28 | //设置装饰物的颜色 29 | //参数:装饰物索引 颜色 16进制颜色值 0xffffffff 透明通道暂时无效 30 | //返回值:无 31 | function SetDoodadColor takes integer index, integer color returns nothing 32 | 33 | 34 | //获取装饰物的x坐标 35 | //参数:装饰物索引 36 | //返回值:装饰物的x坐标 37 | function GetDoodadX takes integer index returns real 38 | 39 | 40 | 41 | //获取装饰物的y坐标 42 | //参数:装饰物索引 43 | //返回值:装饰物的y坐标 44 | function GetDoodadY takes integer index returns real 45 | 46 | 47 | //获取装饰物的z坐标 48 | //参数:装饰物索引 49 | //返回值:装饰物的z坐标 50 | function GetDoodadZ takes integer index returns real 51 | 52 | 53 | //设置装饰物的坐标 54 | //参数:装饰物索引 x坐标 y坐标 z坐标 55 | //返回值:无 56 | function SetDoodadPosition takes integer index, real x, real y, real z returns nothing 57 | 58 | 59 | //设置装饰物的缩放 每次设置是会累加的 乘法计算 会刷新渲染范围 60 | //参数:装饰物索引 x缩放 y缩放 z缩放 61 | //返回值:无 62 | function SetDoodadMatScale takes integer index, real x, real y, real z returns nothing 63 | 64 | 65 | //设置装饰物的旋转矩阵 每次设置是会累加的 乘法计算 66 | //参数:装饰物索引 x旋转 y旋转 z旋转 67 | //返回值:无 68 | function SetDoodadMatRotateX takes integer index, real x returns nothing 69 | function SetDoodadMatRotateY takes integer index, real y returns nothing 70 | function SetDoodadMatRotateZ takes integer index, real z returns nothing 71 | 72 | 73 | //设置装饰物的矩阵重置成1 将旋转跟缩放重置成1 74 | //参数:装饰物索引 75 | //返回值:无 76 | function SetDoodadMatReset takes integer index returns nothing 77 | 78 | 79 | //设置装饰物的是否可见 80 | //参数:装饰物索引 是否可见 81 | //返回值:无 82 | function SetDoodadVisible takes integer index, boolean visible returns nothing 83 | 84 | 85 | //设置装饰物的动画 调用后 可以使用GetDoodadCurrentAnimationIndex 获取索引,根据索引获取动画名称,时长等信息 86 | //参数:装饰物索引 动画名称 是否禁止随机 true禁止 如果是false则允许随机 会一直随机切换动画 比如stand多个动画时会自动切换。 87 | //返回值:动画时长(毫秒) 88 | function SetDoodadAnimation takes integer index, string animation, boolean disable_random returns integer 89 | 90 | 91 | //设置装饰物的动画速度 1.0是正常速度 0.5是一半速度 2.0是两倍速度 92 | //参数:装饰物索引 动画速度 93 | //返回值:无 94 | function SetDoodadSpeed takes integer index, real speed returns nothing 95 | 96 | 97 | //获取装饰物的动画速度 98 | //参数:装饰物索引 99 | //返回值:装饰物的动画速度 100 | function GetDoodadSpeed takes integer index returns real 101 | 102 | //获取装饰物的样式 103 | //参数:装饰物索引 104 | //返回值:样式索引 105 | function GetDoodadVariation takes integer index returns integer 106 | 107 | 108 | //获取装饰物的当前动画索引 109 | //参数:装饰物索引 110 | //返回值:装饰物的当前动画索引 111 | function GetDoodadCurrentAnimationIndex takes integer index returns integer 112 | 113 | 114 | //获取装饰物的动画数量 115 | //参数:装饰物索引 116 | //返回值:装饰物的动画数量 循环0~最大数量-1 用循环数 作为装饰物的动画索引 跟model2的动画索引机制一样 117 | function GetDoodadAnimationCount takes integer index returns integer 118 | 119 | 120 | //获取装饰物的动画名称 121 | //参数:装饰物索引 动画索引 122 | //返回值:装饰物的动画名称 123 | function GetDoodadAnimationnName takes integer index, integer animation_index returns string 124 | 125 | 126 | //获取装饰物的动画时长 127 | //参数:装饰物索引 动画索引 128 | //返回值:装饰物的动画时长(毫秒) 129 | function GetDoodadAnimationTime takes integer index, integer animation_index returns integer 130 | 131 | 132 | //创建装饰物 由于没有销毁, 如果可以设置模型+设置不可见 来模拟回收, 需要使用时 再重新提取出来 133 | //参数 装饰物物编类型ID, 样式, x坐标, y坐标, z坐标, 旋转角度, 缩放比例( 受到编辑器最小 最大比例限制) 134 | //返回值:装饰物索引 135 | function CreateDoodad takes integer type_id, integer style, real x, real y, real z, real face, real scale returns integer 136 | 137 | 138 | 139 | ``` 140 | 141 | # 例子 142 | 143 | 144 | 145 | ```lua 146 | 147 | for index = 0, japi.GetDoodadCount() do 148 | japi.SetDoodadVisible(index, false) 149 | end 150 | 151 | ``` 152 | -------------------------------------------------------------------------------- /docs/Japi/README.md: -------------------------------------------------------------------------------- 1 | --- 2 | autoIgnore: true 3 | --- 4 | 5 | - [**Japi**](./) 6 | 7 | - [**获取当前选择单位**](./获取当前选择单位.md) 8 | - [**获取当前指向单位**](./获取当前指向单位.md) 9 | 10 | - [**设置单位模型**](./设置单位模型.md) 11 | - [**设置单位头像模型**](./设置单位头像模型.md) 12 | - [**设置单位名字**](./设置单位名字.md) 13 | - [**设置英雄称谓**](./设置英雄称谓.md) 14 | - [**设置单位普攻弹道模型**](./设置单位普攻弹道模型.md) 15 | - [**设置单位普攻弹道弧度**](./设置单位普攻弹道弧度.md) 16 | - [**设置单位普攻弹道速度**](./设置单位普攻弹道速度.md) 17 | - [**设置单位普攻弹道自导允许**](./设置单位普攻弹道自导允许.md) 18 | - [**设置单位贴图**](./设置单位贴图.md) 19 | 20 | - [**设置特效动画**](./设置特效动画.md) 21 | - [**设置特效颜色**](./设置特效颜色.md) 22 | - [**设置特效坐标**](./设置特效坐标.md) 23 | - [**设置特效显示**](./设置特效显示.md) 24 | 25 | - [**显示 FPS 文本**](./显示FPS文本.md) 26 | - [**获取 FPS 帧数**](./获取FPS帧数.md) 27 | - [**解锁 FPS 帧数上限**](./解锁FPS帧数上限.md) 28 | - [**解锁 BLP 像素限制**](./解锁BLP像素限制.md) 29 | 30 | - [**清除模型内存缓存**](./清除模型内存缓存.md) 31 | - [**清除字符串内存缓存**](./清除字符串内存缓存.md) 32 | 33 | - [**获取聊天框是否打开**](./获取聊天框是否打开.md) 34 | - [**设置单位&物品鼠标指向 UI 跟血条是否显示**](./设置单位&物品鼠标指向UI跟血条是否显示.md) 35 | -------------------------------------------------------------------------------- /docs/Japi/显示FPS文本.md: -------------------------------------------------------------------------------- 1 | 2 | # 显示FPS文本 3 | ```jass 4 | function ShowFpsText takes boolean show returns nothing 5 | ``` 6 | # 描述 7 | 显示屏幕中间的FPS文本 8 | # 参数 9 | 类型|名字|说明 10 | --|--|-- 11 | 布尔值|show|是否显示 12 | 13 | 14 | # 例子 15 | 16 | ```jass 17 | call ShowFpsText(true) 18 | ``` 19 | 20 | ```lua 21 | local japi = require 'jass.japi' 22 | 23 | japi.ShowFpsText(true) 24 | 25 | ``` 26 | 27 | -------------------------------------------------------------------------------- /docs/Japi/清除字符串内存缓存.md: -------------------------------------------------------------------------------- 1 | 2 | # 清除字符串内存缓存 3 | ```jass 4 | function ReleaseString takes string str returns nothing 5 | function ReleaseAllString takes nothing returns nothing 6 | function GetCacheStringCount takes nothing returns integer 7 | 8 | function DumpAllString takes string filename returns integer 9 | 10 | ``` 11 | # 描述 12 | 13 | 清除魔兽jass虚拟机里缓存的字符串 解决游戏后期字符串太多导致游戏卡顿的问题 14 | 15 | 16 | * ReleaseAllString 做了特殊处理 不处理 jass全局变量 局部变量 哈希表里的字符串 能安全使用 17 | 18 | * ReleaseString 没判定 字符串是否被引用, 需要小心使用。 19 | 20 | * DumpAllString 将现存的字符串 输出到文件里 21 | 22 | * 顺便修复了 对玩家发送消息太多 导致卡顿的问题 23 | 24 | # 例子 25 | 26 | ```jass 27 | call ReleaseString("xxx.mdx") 28 | ``` 29 | 30 | ```lua 31 | local japi = require 'jass.japi' 32 | 33 | if japi.GetCacheStringCount() > 10000 then 34 | japi.ReleaseAllString() 35 | 36 | japi.DumpAllString("string.txt") --会在魔兽目录下生成当前的字符串 37 | end 38 | 39 | ``` 40 | 41 | -------------------------------------------------------------------------------- /docs/Japi/清除模型内存缓存.md: -------------------------------------------------------------------------------- 1 | 2 | # 清除模型内存缓存 3 | ```jass 4 | function ReleaseModel takes string model_path returns nothing 5 | function ReleaseAllModel takes nothing returns nothing 6 | function GetCacheModelCount takes nothing returns integer 7 | 8 | ``` 9 | # 描述 10 | 11 | 用来清空魔兽的模型文件缓存 降低内存占用 12 | 直到下一次读取 才会重新占用。 13 | 14 | 15 | # 例子 16 | 17 | ```jass 18 | call ReleaseModel("xxx.mdx") 19 | ``` 20 | 21 | ```lua 22 | local japi = require 'jass.japi' 23 | 24 | if japi.GetCacheModelCount() > 100 then 25 | japi.ReleaseAllModel() 26 | end 27 | ``` 28 | 29 | -------------------------------------------------------------------------------- /docs/Japi/获取FPS帧数.md: -------------------------------------------------------------------------------- 1 | 2 | # 获取FPS帧数 3 | ```jass 4 | function GetFps takes nothing returns real 5 | ``` 6 | # 描述 7 | 异步获取 玩家当前的帧数 8 | 玩家比较卡时 帧数较低 可以异步空特效路径 以及 弹道模型 屏蔽特效来提高帧数。 9 | 10 | # 返回值 11 | 类型|说明 12 | --|-- 13 | 实数|注意返回是异步的切记小心使用 14 | 15 | 16 | # 例子 17 | 18 | ```jass 19 | 20 | local real fps = GetFps() 21 | 22 | ``` 23 | 24 | ```lua 25 | local japi = require 'jass.japi' 26 | 27 | local fps = japi.GetFps() 28 | 29 | ``` 30 | 31 | -------------------------------------------------------------------------------- /docs/Japi/获取当前指向单位.md: -------------------------------------------------------------------------------- 1 | 2 | # 获取当前指向单位 3 | ```jass 4 | function GetTargetObject takes nothing returns unit 5 | ``` 6 | # 描述 7 | 异步获取 获取当前指向单位 8 | 一般用来做UI操作时需要用到的接口 9 | 10 | # 返回值 11 | 类型|说明 12 | --|-- 13 | 单位|注意返回是异步的handle,切记小心使用 14 | 15 | 16 | # 例子 17 | 18 | ```jass 19 | 20 | local unit u = GetTargetObject() 21 | 22 | ``` 23 | 24 | ```lua 25 | local japi = require 'jass.japi' 26 | 27 | local handle = japi.GetTargetObject() --也可获取指向的 物品 可选择的可破坏物时 28 | 29 | ``` 30 | 31 | -------------------------------------------------------------------------------- /docs/Japi/获取当前选择单位.md: -------------------------------------------------------------------------------- 1 | 2 | # 获取当前选择单位 3 | ```jass 4 | function GetRealSelectUnit takes nothing returns unit 5 | ``` 6 | # 描述 7 | 异步获取 当前玩家大头像模型的单位 当框选一群单位时 切换选择也会改变返回值 8 | 一般用来做UI操作时需要用到的接口 9 | 10 | # 返回值 11 | 类型|说明 12 | --|-- 13 | 单位|注意返回是异步的handle,切记小心使用 14 | 15 | 16 | # 例子 17 | 18 | ```jass 19 | 20 | local unit u = GetRealSelectUnit() 21 | 22 | ``` 23 | 24 | ```lua 25 | local japi = require 'jass.japi' 26 | 27 | local unit_handle = japi.GetRealSelectUnit() 28 | 29 | ``` 30 | 31 | -------------------------------------------------------------------------------- /docs/Japi/获取聊天框是否打开.md: -------------------------------------------------------------------------------- 1 | 2 | # 获取聊天框是否打开 3 | ```jass 4 | function GetChatState takes nothing returns boolean 5 | ``` 6 | # 描述 7 | 异步获取 玩家的聊天框是否被打开 8 | 一般用来做键盘操作时 避免与输入冲突 9 | 10 | # 返回值 11 | 类型|说明 12 | --|-- 13 | 布尔值| 打开时返回true 未打开时返回false 意返回是异步的,切记小心使用 14 | 15 | 16 | # 例子 17 | 18 | ```jass 19 | 20 | local boolean enable = GetChatState() 21 | 22 | ``` 23 | 24 | ```lua 25 | local japi = require 'jass.japi' 26 | 27 | local enable = japi.GetChatState() 28 | 29 | ``` 30 | 31 | -------------------------------------------------------------------------------- /docs/Japi/解锁BLP像素限制.md: -------------------------------------------------------------------------------- 1 | 2 | # 解锁BLP像素限制 3 | ```jass 4 | function UnlockBlpSize takes boolean is_unlock returns nothing 5 | ``` 6 | # 描述 7 | 解锁blp贴图的像素上限 原本魔兽高清图片也会被限制在512p之内 8 | 9 | 10 | # 参数 11 | 类型|名字|说明 12 | --|--|-- 13 | 布尔值|is_unlock| 填true解锁 填false恢复 14 | 15 | 16 | # 例子 17 | 18 | ```jass 19 | 20 | call UnlockBlpSize(true) 21 | 22 | ``` 23 | 24 | ```lua 25 | local japi = require 'jass.japi' 26 | 27 | japi.UnlockBlpSize(true) 28 | 29 | ``` 30 | 31 | -------------------------------------------------------------------------------- /docs/Japi/解锁FPS帧数上限.md: -------------------------------------------------------------------------------- 1 | 2 | # 解锁FPS帧数上限 3 | ```jass 4 | function UnlockFps takes boolean is_unlock returns nothing 5 | ``` 6 | # 描述 7 | 解锁帧数上限 突破60帧 8 | 9 | 10 | # 参数 11 | 类型|名字|说明 12 | --|--|-- 13 | 布尔值|is_unlock| 填true解锁 填false恢复 14 | 15 | 16 | # 例子 17 | 18 | ```jass 19 | 20 | call UnlockFps(true) 21 | 22 | ``` 23 | 24 | ```lua 25 | local japi = require 'jass.japi' 26 | 27 | japi.UnlockFps(true) 28 | 29 | ``` 30 | 31 | -------------------------------------------------------------------------------- /docs/Japi/设置单位名字.md: -------------------------------------------------------------------------------- 1 | 2 | # 设置单位名字 3 | ```jass 4 | function SetUnitName takes unit handle, string name returns nothing 5 | ``` 6 | # 描述 7 | 设置单位名字 每个单位独立 互相不影响 修改后 获取单位名字 还是返回原值 8 | # 参数 9 | 类型|名字|说明 10 | --|--|-- 11 | 单位|handle|要修改的单位handle 12 | 字符串|name|要修改的名字 13 | 14 | 15 | # 例子 16 | 17 | ```jass 18 | call SetUnitName(GetTriggerUnit(), "新的名字") 19 | 20 | ``` 21 | 22 | ```lua 23 | local japi = require 'jass.japi' 24 | local jass = require 'jass.common' 25 | 26 | japi.SetUnitName(jass.GetTriggerUnit(), "新的名字") 27 | 28 | ``` 29 | 30 | -------------------------------------------------------------------------------- /docs/Japi/设置单位头像模型.md: -------------------------------------------------------------------------------- 1 | 2 | # 设置单位头像模型 3 | ```jass 4 | function SetUnitPortrait takes unit handle, string model returns nothing 5 | ``` 6 | # 描述 7 | 设置之后会立即改变 当 设置单位模型时 会被新的自动覆盖掉 8 | 9 | # 参数 10 | 类型|名字|说明 11 | --|--|-- 12 | 单位|handle|要修改的单位handle 13 | 字符串|model|模型路径 后缀可以是.mdx .mdl 省略后缀自动默认.mdx 14 | 15 | 16 | # 例子 17 | 18 | ```jass 19 | call SetUnitPortrait(GetTriggerUnit(), "units\\human\\Peasant\\Peasant_portrait.mdx") 20 | 21 | ``` 22 | 23 | ```lua 24 | local japi = require 'jass.japi' 25 | local jass = require 'jass.common' 26 | 27 | japi.SetUnitPortrait(jass.GetTriggerUnit(), "units\\human\\Peasant\\Peasant_portrait.mdx") 28 | 29 | ``` 30 | 31 | -------------------------------------------------------------------------------- /docs/Japi/设置单位普攻弹道弧度.md: -------------------------------------------------------------------------------- 1 | 2 | # 设置单位普攻弹道弧度 3 | ```jass 4 | function SetUnitMissileArc takes unit handle, real value returns nothing 5 | ``` 6 | # 描述 7 | 设置单位普攻弹道弧度 每个单位独立 互相不影响 会被法球覆盖 8 | # 参数 9 | 类型|名字|说明 10 | --|--|-- 11 | 单位|handle|要修改的单位handle 12 | 实数|value|弧度 13 | 14 | 15 | # 例子 16 | 17 | ```jass 18 | call SetUnitMissileArc(GetTriggerUnit(), 0.8) 19 | 20 | ``` 21 | 22 | ```lua 23 | local japi = require 'jass.japi' 24 | local jass = require 'jass.common' 25 | 26 | japi.SetUnitMissileArc(jass.GetTriggerUnit(), 0.8) 27 | 28 | ``` 29 | 30 | -------------------------------------------------------------------------------- /docs/Japi/设置单位普攻弹道模型.md: -------------------------------------------------------------------------------- 1 | 2 | # 设置单位普攻弹道模型 3 | ```jass 4 | function SetUnitMissileModel takes unit handle, string model returns nothing 5 | ``` 6 | # 描述 7 | 设置单位普攻弹道模型 每个单位独立 互相不影响 会被法球覆盖 8 | # 参数 9 | 类型|名字|说明 10 | --|--|-- 11 | 单位|handle|要修改的单位handle 12 | 字符串|model|要修改的弹道模型路径 13 | 14 | 15 | # 例子 16 | 17 | ```jass 18 | call SetUnitMissileModel(GetTriggerUnit(), "units\\human\\phoenix\\phoenix.mdx") 19 | 20 | ``` 21 | 22 | ```lua 23 | local japi = require 'jass.japi' 24 | local jass = require 'jass.common' 25 | 26 | japi.SetUnitMissileModel(jass.GetTriggerUnit(), "units\\human\\phoenix\\phoenix.mdx") 27 | 28 | ``` 29 | 30 | -------------------------------------------------------------------------------- /docs/Japi/设置单位普攻弹道自导允许.md: -------------------------------------------------------------------------------- 1 | 2 | # 设置单位普攻弹道自导允许 3 | ```jass 4 | function SetUnitMissileHoming takes unit handle, boolean value returns nothing 5 | ``` 6 | # 描述 7 | 设置单位普攻弹道自导允许 每个单位独立 互相不影响 会被法球覆盖 8 | # 参数 9 | 类型|名字|说明 10 | --|--|-- 11 | 单位|handle|要修改的单位handle 12 | 布尔值|value|是否允许 13 | 14 | 15 | # 例子 16 | 17 | ```jass 18 | call SetUnitMissileHoming(GetTriggerUnit(), true) 19 | 20 | ``` 21 | 22 | ```lua 23 | local japi = require 'jass.japi' 24 | local jass = require 'jass.common' 25 | 26 | japi.SetUnitMissileHoming(jass.GetTriggerUnit(), true) 27 | 28 | ``` 29 | 30 | -------------------------------------------------------------------------------- /docs/Japi/设置单位普攻弹道速度.md: -------------------------------------------------------------------------------- 1 | 2 | # 设置单位普攻弹道速度 3 | ```jass 4 | function SetUnitMissileSpeed takes unit handle, real value returns nothing 5 | ``` 6 | # 描述 7 | 设置单位普攻弹道速度 每个单位独立 互相不影响 会被法球覆盖 8 | # 参数 9 | 类型|名字|说明 10 | --|--|-- 11 | 单位|handle|要修改的单位handle 12 | 实数|value|速度 每秒的距离 13 | 14 | 15 | # 例子 16 | 17 | ```jass 18 | call SetUnitMissileSpeed(GetTriggerUnit(), 2000) 19 | 20 | ``` 21 | 22 | ```lua 23 | local japi = require 'jass.japi' 24 | local jass = require 'jass.common' 25 | 26 | japi.SetUnitMissileSpeed(jass.GetTriggerUnit(), 2000) 27 | 28 | ``` 29 | 30 | -------------------------------------------------------------------------------- /docs/Japi/设置单位模型.md: -------------------------------------------------------------------------------- 1 | 2 | # 设置单位模型 3 | ```jass 4 | function SetUnitModel takes handle Handle, string model returns nothing 5 | ``` 6 | # 描述 7 | 设置单位模型 包括大头像模型也会自动设置 8 | 该接口 也可以给物品 特效 可破坏物 更换模型 9 | 10 | # 参数 11 | 类型|名字|说明 12 | --|--|-- 13 | 单位|handle|要修改的单位handle 14 | 字符串|model|模型路径 后缀可以是.mdx .mdl 省略后缀自动默认.mdx 15 | 16 | 17 | # 例子 18 | 19 | ```jass 20 | call SetUnitModel(GetTriggerUnit(), "units\\human\\Peasant\\Peasant.mdx") 21 | 22 | ``` 23 | 24 | ```lua 25 | local japi = require 'jass.japi' 26 | local jass = require 'jass.common' 27 | 28 | japi.SetUnitModel(jass.GetTriggerUnit(), "units\\human\\Peasant\\Peasant.mdx") 29 | 30 | ``` 31 | 32 | -------------------------------------------------------------------------------- /docs/Japi/设置单位贴图.md: -------------------------------------------------------------------------------- 1 | 2 | # 设置单位贴图 3 | ```jass 4 | function SetUnitTexture takes unit handle, string texture, integer id returns nothing 5 | ``` 6 | # 描述 7 | 设置单位贴图 替换单位身上的id贴图 例如队伍颜色的id贴图是 0 队伍光晕 id 是1 8 | # 参数 9 | 类型|名字|说明 10 | --|--|-- 11 | 单位|handle|要修改的单位handle 12 | 字符串|texture|贴图路径 13 | 整数|id|贴图id 14 | 15 | 16 | # 例子 17 | 18 | ```jass 19 | call SetUnitTexture(GetTriggerUnit(), "xx.blp", 0) 20 | 21 | ``` 22 | 23 | ```lua 24 | local japi = require 'jass.japi' 25 | local jass = require 'jass.common' 26 | 27 | japi.SetUnitTexture(jass.GetTriggerUnit(), "xx.blp", 0) 28 | 29 | ``` 30 | 31 | -------------------------------------------------------------------------------- /docs/Japi/设置单位鼠标指向UI跟血条是否显示.md: -------------------------------------------------------------------------------- 1 | # 设置 单位 鼠标指向 UI 跟血条 是否显示 2 | 3 | ```jass 4 | function SetUnitPressUIVisible takes handle Handle, boolean is_show returns nothing 5 | ``` 6 | 7 | # 描述 8 | 9 | 隐藏单位跟物品 鼠标指向时显示的 UI 包括单位血条 10 | 11 | ::: danger 警告 12 | 目前对 物品使用会引起 掉线 请勿对物品使用 13 | ::: 14 | 15 | # 参数 16 | 17 | | 类型 | 名字 | 说明 | 18 | | ------ | ------- | -------------------------- | 19 | | 单位 | handle | 要修改的单位或物品 | 20 | | 字符串 | is_show | 是否显示 填 false 就是隐藏 | 21 | 22 | # 例子 23 | 24 | ```jass 25 | call SetUnitPressUIVisible(GetTriggerUnit(), false) 26 | 27 | ``` 28 | 29 | ```lua 30 | local japi = require 'jass.japi' 31 | local jass = require 'jass.common' 32 | 33 | japi.SetUnitPressUIVisible(jass.GetTriggerUnit(), false) 34 | 35 | ``` 36 | -------------------------------------------------------------------------------- /docs/Japi/设置特效动画.md: -------------------------------------------------------------------------------- 1 | 2 | # 设置特效动画 3 | ```jass 4 | function EXSetEffectAnimation takes effect handle, integer index returns nothing 5 | ``` 6 | # 描述 7 | 设置特效动画 8 | # 参数 9 | 类型|名字|说明 10 | --|--|-- 11 | 特效|handle|特效handle 12 | 整数|index|动画索引 13 | 14 | # 例子 15 | 16 | ```jass 17 | call EXSetEffectAnimation(handle, 0) 18 | ``` 19 | 20 | ```lua 21 | local japi = require 'jass.japi' 22 | 23 | japi.EXSetEffectAnimation(handle, 0) 24 | 25 | ``` 26 | 27 | -------------------------------------------------------------------------------- /docs/Japi/设置特效坐标.md: -------------------------------------------------------------------------------- 1 | # 设置特效坐标 2 | 3 | ```jass 4 | function EXSetEffectXY takes effect handle, real x, real y returns nothing 5 | function EXSetEffectZ takes effect handle, real z returns nothing 6 | ``` 7 | 8 | # 描述 9 | 10 | 设置特效坐标 修复了原本 ydjapi 里面特效超过出生范围一定距离 游戏不会渲染的问题 11 | 用了类似全图挂的方式 强行让魔兽渲染该特效。 12 | 13 | # 参数 14 | 15 | | 类型 | 名字 | 说明 | 16 | | ---- | ------ | ----------- | 17 | | 特效 | handle | 特效 handle | 18 | 19 | # 例子 20 | 21 | ```jass 22 | call EXSetEffectXY(handle, 0, 0) 23 | ``` 24 | 25 | ```lua 26 | local japi = require 'jass.japi' 27 | 28 | japi.EXSetEffectXY(handle, 0, 0) 29 | 30 | ``` 31 | -------------------------------------------------------------------------------- /docs/Japi/设置特效显示.md: -------------------------------------------------------------------------------- 1 | 2 | # 设置特效显示 3 | ```jass 4 | function EXSetEffectVisible takes effect handle, boolean visible returns nothing 5 | function EXSetEffectFogVisible takes effect handle, boolean visible returns nothing 6 | function EXSetEffectMaskVisible takes effect handle, boolean visible returns nothing 7 | 8 | ``` 9 | # 描述 10 | * 设置特效是否显示 默认true 11 | * 设置特效在迷雾中是否显示 默认true 12 | * 设置特效在阴影中是否显示 默认true 13 | 14 | # 参数 15 | 类型|名字|说明 16 | --|--|-- 17 | 特效|handle|特效handle 18 | 布尔值|visible|是否显示 19 | 20 | # 例子 21 | 22 | ```jass 23 | call EXSetEffectVisible(handle, false) 24 | ``` 25 | 26 | ```lua 27 | local japi = require 'jass.japi' 28 | 29 | japi.EXSetEffectVisible(handle, false) 30 | 31 | ``` 32 | 33 | -------------------------------------------------------------------------------- /docs/Japi/设置特效颜色.md: -------------------------------------------------------------------------------- 1 | 2 | # 设置特效颜色 3 | ```jass 4 | function EXSetEffectColor takes effect handle, integer color returns nothing 5 | ``` 6 | # 描述 7 | 设置特效颜色 透明值无效 8 | # 参数 9 | 类型|名字|说明 10 | --|--|-- 11 | 特效|handle|特效handle 12 | 整数|color|颜色的16进制 13 | 14 | 15 | # 例子 16 | 17 | ```jass 18 | 19 | local real red = 50 20 | local real green = 50 21 | local real blue = 50 22 | //红 绿 蓝 1~100 百分比 23 | call EXSetEffectColor(handle, 0xff000000 + 0x10000 * PercentTo255(red) + 0x100 * PercentTo255(green) + PercentTo255(blue)) 24 | 25 | //16进制 26 | call EXSetEffectColor(handle, 0xffffffff) 27 | 28 | 29 | ``` 30 | 31 | ```lua 32 | local japi = require 'jass.japi' 33 | 34 | japi.EXSetEffectColor(handle, 0xffffffff) 35 | 36 | ``` 37 | 38 | -------------------------------------------------------------------------------- /docs/Japi/设置英雄称谓.md: -------------------------------------------------------------------------------- 1 | 2 | # 设置英雄称谓 3 | ```jass 4 | function SetUnitProperName takes unit handle, string name returns nothing 5 | ``` 6 | # 描述 7 | 设置英雄称谓 每个单位独立 互相不影响 GetHeroProperName获取英雄称谓 是修改后的值。 8 | # 参数 9 | 类型|名字|说明 10 | --|--|-- 11 | 单位|handle|要修改的单位handle 12 | 字符串|name|要修改的名字 13 | 14 | 15 | # 例子 16 | 17 | ```jass 18 | call SetUnitProperName(GetTriggerUnit(), "新的称谓") 19 | 20 | ``` 21 | 22 | ```lua 23 | local japi = require 'jass.japi' 24 | local jass = require 'jass.common' 25 | 26 | japi.SetUnitProperName(jass.GetTriggerUnit(), "新的称谓") 27 | 28 | ``` 29 | 30 | -------------------------------------------------------------------------------- /docs/Lua/README.md: -------------------------------------------------------------------------------- 1 | --- 2 | autoIgnore: true 3 | --- 4 | 5 | - [**Lua**](./) 6 | - [**引擎变动**](./引擎变动.md) 7 | - [**jass 交互**](./jass交互.md) 8 | - [**dzapi 交互**](./dzapi.md) 9 | - [**服务器交互**](./服务器交互.md) 10 | - [**jass.message**](./message) 11 | -------------------------------------------------------------------------------- /docs/Lua/jass交互.md: -------------------------------------------------------------------------------- 1 | # jass.code 跟jass进行交互 2 | 3 | jass里面 有2种函数 4 | 5 | * 1是 native 在common.j 里的接口 简称cj 6 | * 2是 blizzard.j 以及war3map.j 里的 自定义函数 简称bj 7 | 8 | 9 | ### lua调用cj 10 | * 原ydlua 功能 11 | 12 | ```lua 13 | local jass = require 'jass.common' 14 | 15 | jass.DisplayTextToPlayer(jass.Player(0), 0, 0, "hello world!") 16 | ``` 17 | 18 | 19 | ### 重载cj jass调用lua 20 | * 原ydlua 功能 21 | 22 | * 由于cj 参数类型 参数数量 返回值 都是固定的 不便做扩展 23 | 24 | ```lua 25 | local jass = require 'jass.common' 26 | local hook = require 'jass.hook' 27 | 28 | local DisplayTextToPlayer = DisplayTextToPlayer 29 | function hook.DisplayTextToPlayer(player, x, y, msg) 30 | print(player, x, y, msg) 31 | DisplayTextToPlayer(player, x, y, msg) 32 | end 33 | ``` 34 | 35 | ### 遍历cj 函数 36 | * 原ydlua 功能 37 | 38 | ```lua 39 | local jass = require 'jass.common' 40 | for name, func in pairs(jass) do 41 | print(name, func) 42 | end 43 | 44 | ``` 45 | 46 | ### lua调用bj 47 | * 内置lua 功能 48 | * 要注意优化混淆j文件后的名字 49 | 50 | ```lua 51 | local code = require 'jass.code' 52 | 53 | code.BJDebugMsg("hello world!") 54 | 55 | ``` 56 | 57 | ### 重载bj jass调用lua 58 | * 内置lua 功能 59 | * bj可以自定义扩展参数类型 参数数量 60 | * 要注意优化混淆j文件后的名字 61 | 62 | ```jass 63 | function add takes integer a, integer b returns integer 64 | call GetTriggeringTrigger() //随便调用一句jass 防止 空函数被jass虚拟机内联优化掉 65 | return 0 66 | endfunction 67 | 68 | function test takes nothing returns nothing 69 | call BJDebugMsg(I2S(add(10, 20))) 70 | endfunction 71 | ``` 72 | 73 | ```lua 74 | local code = require 'jass.code' 75 | 76 | function code.add(a, b) 77 | return a + b 78 | end 79 | 80 | function code.BJDebugMsg(msg) 81 | print(msg) 82 | end 83 | 84 | 85 | code.test() --控制台将会输出 30 而游戏内屏幕不会打印。 86 | 87 | ``` 88 | 89 | ### 遍历bj 函数 90 | * 内置lua 功能 91 | 92 | ```lua 93 | local code = require 'jass.code' 94 | for name, func in pairs(code) do 95 | print(name, func) 96 | end 97 | 98 | ``` 99 | -------------------------------------------------------------------------------- /docs/Lua/message/README.md: -------------------------------------------------------------------------------- 1 | 2 | * [**Lua**](/) 3 | * [**jass.message**](/) 4 | * [hook](./hook.md) 5 | * [order_hook](./order_hook.md) 6 | 7 | * [目标指示器](./目标指示器.md) 8 | * [屏幕坐标转世界坐标](./屏幕坐标转世界坐标.md) 9 | * [世界坐标转屏幕坐标](./世界坐标转屏幕坐标.md) 10 | * [获取单位血条高度](./获取单位血条高度.md) 11 | * [网易平台判断观战或录像](./网易平台判断观战或录像.md) 12 | 13 | 14 | -------------------------------------------------------------------------------- /docs/Lua/message/hook.md: -------------------------------------------------------------------------------- 1 | 2 | # 异步事件的hook 3 | 4 | ### 返回nil 或者 false 可以屏蔽事件 5 | 6 | 7 | ```lua 8 | 9 | local event_map = { 10 | 11 | --异步选择单位事件 该事件只是捕获大头像变化 不能屏蔽 用来做UI刷新用的 12 | ['select_unit'] = function (msg) 13 | local handle = msg.unit 14 | 15 | return true 16 | end, 17 | 18 | --补充了原本ydlua 没有右键单位事件 19 | ['mouse_down'] = function (msg) --鼠标在 按下 单位或地面时 20 | local code = msg.code -- 左键为 1 右键为 4 21 | local x, y = msg.x, msg.y --鼠标世界坐标 22 | 23 | 24 | return true 25 | end, 26 | 27 | ['mouse_up'] = function (msg) --鼠标弹起 28 | 29 | return true 30 | end, 31 | 32 | 33 | 34 | ['mouse_item'] = function (msg) --当鼠标点击物品按钮事件 35 | local ability_id = msg.ability 36 | local order_id = msg.order 37 | 38 | return true 39 | end, 40 | 41 | 42 | ['mouse_ability'] = function (msg) --当鼠标点击技能按钮事件 43 | local ability_id = msg.ability 44 | local order_id = msg.order 45 | 46 | return true 47 | end, 48 | 49 | 50 | 51 | ['key_down'] = function (msg) --键盘按下事件 不会跟聊天框冲突 52 | local code = msg.code --整数 键码 53 | 54 | local state = msg.state -- 默认为0 判断组合键用 alt + 字母键 时 为 4 当 ctrl + 字母键时 为 2 55 | 56 | --修改 msg.code 可以进行改键 57 | msg.code = code 58 | 59 | return true 60 | end, 61 | 62 | ['key_up'] = function (msg) --键盘弹起事件 不会跟聊天框冲突 63 | local code = msg.code --整数 键码 64 | 65 | local state = msg.state -- 默认为0 判断组合键用 alt + 字母键 时 为 4 当 ctrl + 字母键时 为 2 66 | 67 | --修改 msg.code 可以进行改键 68 | msg.code = code 69 | 70 | return true 71 | end, 72 | } 73 | function message.hook(msg) 74 | local info = event_map[msg.type] 75 | 76 | if info then 77 | return info(msg) 78 | end 79 | return true 80 | end 81 | 82 | ``` -------------------------------------------------------------------------------- /docs/Lua/message/order_hook.md: -------------------------------------------------------------------------------- 1 | # 本地命令的捕获跟屏蔽 2 | 3 | ### 返回nil 或者 false 可以屏蔽本地命令的发出 4 | 5 | * 可以用来做 不打断的失控 6 | * 可以让 主动技能 不能施法 变成被动技能 7 | * 可以屏蔽玩家丢弃物品 或者 移动物品操作 8 | 9 | ```lua 10 | local message = require 'jass.message' 11 | local japi = require 'jass.japi' 12 | 13 | local event_map = { 14 | 15 | --本地发布无目标命令 16 | ['order_immediate'] = function (unit_handle, info) 17 | --当框选一群单位发布命令时 flag 会变化 18 | local name, order_id, unknow, flag = table.unpack(info) 19 | 20 | 21 | return true 22 | end, 23 | 24 | --本地发布点命令 25 | ['order_point'] = function (unit_handle, info) 26 | --当框选一群单位发布命令时 flag 会变化 27 | local name, order_id, unknow, x, y, flag = table.unpack(info) 28 | 29 | 30 | return true 31 | end, 32 | 33 | --本地发布目标命令 34 | ['order_target'] = function (unit_handle, info) 35 | --当框选一群单位发布命令时 flag 会变化 36 | --当对地面发布命令时 handle 为0 37 | local name, order_id, unknow, x, y, handle, flag = table.unpack(info) 38 | 39 | 40 | return true 41 | end, 42 | 43 | --本地右键单位发布命令 44 | ['order_smart'] = function (unit_handle, info) 45 | --当框选一群单位发布命令时 flag 会变化 46 | local name, order_id, unknow, handle, flag = table.unpack(info) 47 | 48 | return true 49 | end, 50 | 51 | --本地物品丢弃事件 52 | ['order_discard'] = function (unit_handle, info) 53 | local name, order_id, unknow, x, y, unit, handle, flag = table.unpack(info) 54 | 55 | return true 56 | end, 57 | 58 | } 59 | 60 | function message.order_hook(info) 61 | local unit_handle = japi.GetRealSelectUnit() 62 | local event = event_map[info[1]] 63 | if event then 64 | return event(unit_handle, info) 65 | end 66 | return true 67 | end 68 | 69 | ``` -------------------------------------------------------------------------------- /docs/Lua/message/世界坐标转屏幕坐标.md: -------------------------------------------------------------------------------- 1 | 2 | # 世界坐标转屏幕坐标 3 | ```lua 4 | local x, y, scale = message.world_to_screen(x, y, z) 5 | ``` 6 | 7 | * 配合单位血条高度 可以模拟血条 8 | * 配合UI文本 可以实现自定义的字体的UI跳字 9 | * 配合UI 可以实现在多个掉落物品上提示文本 传奇那种装备爆满地 10 | * 配合UI 可以画英雄称号 商店标题 等等 11 | 12 | # 参数 13 | 索引|类型|说明 14 | --|--|-- 15 | 1|number| 世界坐标x轴 16 | 2|number| 世界坐标y轴 17 | 3|number| 世界坐标z轴 18 | 19 | # 返回值 20 | 索引|类型|说明 21 | --|--|-- 22 | 1|number| 屏幕x轴 左到右 0 ~ 0.8 23 | 2|number| 屏幕y轴 上到下 0 ~ 0.6 24 | 3|number| 缩放 近大远小 25 | 26 | 27 | -------------------------------------------------------------------------------- /docs/Lua/message/屏幕坐标转世界坐标.md: -------------------------------------------------------------------------------- 1 | 2 | # 屏幕坐标转世界坐标 3 | ```lua 4 | local x, y = message.screen_to_world(0.4, 0.3) 5 | ``` 6 | 7 | 可以做一些特殊效果 比如从某个UI上面 飞一个特效到英雄身上 像王者荣耀的装备 那样 8 | 9 | # 参数 10 | 索引|类型|说明 11 | --|--|-- 12 | 1|number| 屏幕x轴 左到右 0 ~ 0.8 13 | 2|number| 屏幕y轴 上到下 0 ~ 0.6 14 | 15 | 16 | # 返回值 17 | 索引|类型|说明 18 | --|--|-- 19 | 1|number| 世界坐标x轴 20 | 2|number| 世界坐标y轴 21 | 22 | 23 | -------------------------------------------------------------------------------- /docs/Lua/message/目标指示器.md: -------------------------------------------------------------------------------- 1 | 2 | # 获取目标指示器的技能或命令 3 | ```lua 4 | local ability_id, order_id, state = message.common_selector() 5 | ``` 6 | * 配合message.hook 在左键点击的那一刻 判断 是使用技能还是发布命令 进行拦截 可以实现自定义条件的 目标允许 7 | * 配合鼠标位置 也可以实现自定义技能指示器 8 | 9 | 10 | # 返回值 11 | 索引|类型|说明 12 | --|--|-- 13 | 1|整数|技能id 如果是没有技能是0 用string.pack(">I4", id) 可以转成字符串id 14 | 2|整数|命令id 15 | 3|整数|指示器状态 16 | 17 | # 例子 18 | ```lua 19 | 20 | local message = require 'jass.message' 21 | 22 | 23 | function message.hook(msg) 24 | local u = japi.GetRealSelectUnit() 25 | local abil_id, order_id, state = message.common_selector() --鼠标指示器 的技能 或者命令 26 | 27 | if msg.type == 'mouse_down' and msg.code == 1 then 28 | if abil_id == 0 then 29 | print('左键发布的命令', order_id) 30 | else 31 | print('左键使用的技能', string.pack(">I4", abil_id)) 32 | end 33 | end 34 | return true 35 | end 36 | 37 | 38 | ac.loop(1000, function () 39 | local abil_id, order_id, state = message.common_selector() 40 | 41 | if state ~= 1 then 42 | print('即将发布命令', order_id, abil_id >0 and string.pack(">I4", abil_id) or '') 43 | else 44 | print('上一次发布的命令', order_id, abil_id >0 and string.pack(">I4", abil_id) or '') 45 | end 46 | end) 47 | ``` 48 | 49 | -------------------------------------------------------------------------------- /docs/Lua/message/网易平台判断观战或录像.md: -------------------------------------------------------------------------------- 1 | # 网易平台判断观战或录像 2 | 3 | ```lua 4 | 5 | 6 | 7 | local message = require 'jass.message' 8 | 9 | local client_online = true --客户端在线游戏 默认是在线的 10 | local client_ready = false -- 客户端查看录像 11 | local client_online_ready = false --客户端在线观战 12 | 13 | local list = message.load_window_infos() 14 | 15 | for index, info in ipairs(list) do 16 | 17 | local title = info.title or '' 18 | 19 | --如果是直播 20 | if title:find('直播') then 21 | 22 | client_online = false 23 | client_online_ready = true 24 | 25 | --如果是录像 26 | elseif title:find('录像') then 27 | 28 | client_online = false 29 | client_ready = true 30 | end 31 | 32 | print(index, info.title, info.class) 33 | end 34 | 35 | if client_online then 36 | print('在线游戏') 37 | elseif client_ready then 38 | print('当前是查看录像') 39 | elseif client_online_ready then 40 | print('当前是观战') 41 | end 42 | 43 | ``` -------------------------------------------------------------------------------- /docs/Lua/message/获取单位血条高度.md: -------------------------------------------------------------------------------- 1 | 2 | # 屏幕坐标转世界坐标 3 | ```lua 4 | local height = message.unit_overhead(unit_handle) 5 | ``` 6 | * 用来模拟血条 或者绑定UI到单位头顶时会用到 7 | 8 | # 参数 9 | 索引|类型|说明 10 | --|--|-- 11 | 1|handle| 单位的handle 12 | 13 | 14 | # 返回值 15 | 索引|类型|说明 16 | --|--|-- 17 | 1|number| 单位的血条高度 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /docs/Lua/引擎变动.md: -------------------------------------------------------------------------------- 1 | # 引擎变动 2 | 3 | 引擎版本 lua 5.34 4 | 5 | * 新增 [jass.code](/Lua/jass交互.md) 6 | * 新增 [jass.dzapi](/Lua/dzapi.md) 7 | * 新增 [jass.message](/Lua/message) 新接口 8 | * 新增 [jass.lni](https://github.com/actboy168/lni) 9 | * 新增 [lpeglabel](https://github.com/sqmedeiros/lpeglabel) 10 | * 新增 [服务器通讯](/Lua/服务器交互.md) 接口 允许跟服务器进行通讯 11 | 12 | * 改动 打乱虚拟机字节码 luac 之后 常规反编译工具不能直接还原 13 | * 改动 可以允许 string number pairs 不异步 保留gchash 对table userdata使用可以防止异步 14 | * 改动 允许jass.storm 对全局路径进行 读写 文件类型保护任有效。 15 | * 改动 jass.globals jass.code 支持混淆j文件 不影响lua脚本。 16 | * 改动 允许中文变量名 17 | 18 | * 修复 message.hook 在网易平台冲突的问题 19 | * 修复 注册lua函数给jass 在大量jass lua混用的地图里崩溃问题 20 | * 修复 注册lua闭包函数给jass 会导致掉线问题。 21 | -------------------------------------------------------------------------------- /docs/Lua/服务器交互.md: -------------------------------------------------------------------------------- 1 | # 服务器通讯接口 2 | 3 | 由于网易平台的反对,内置1.50以上的版本将会取消该接口, 尽可能不要再使用了。 4 | 5 | 6 | ```lua 7 | post_message(url, post, function (result) 8 | 9 | end) 10 | ``` 11 | 12 | # 描述 13 | http协议的 post接口 content-type : text/plain 14 | 15 | 如需传递2进制数据 或者 数据表 用 base64 或 json 自行编码解码 16 | 17 | # 参数 18 | 类型|索引|说明 19 | --|--|-- 20 | 字符串|1| url 网址 21 | 字符串|2| post 参数 22 | 函数|3| 回调函数 result 为字符串类型 23 | 24 | 25 | 26 | 27 | 28 | ### 例子 29 | 30 | ```lua 31 | local jass = require 'jass.common' 32 | local dzapi = require 'jass.dzapi' 33 | 34 | 35 | local trg = jass.CreateTrigger() 36 | 37 | dzapi.DzTriggerRegisterSyncData(trg, "http", false) 38 | jass.TriggerAddAction(trg, function () 39 | local handle = dzapi.DzGetTriggerSyncPlayer() 40 | local data = dzapi.DzGetTriggerSyncData() 41 | 42 | print('玩家', jass.GetPlayerId(handle), '下载了', data) 43 | end) 44 | 45 | 46 | local url = "www.baidu.com" 47 | local post = "" 48 | 49 | --访问服务器下载数据 当下载完成后 会得到一个result 返回值 50 | --5秒后超时 51 | post_message(url, post, function (result) 52 | --由于数据是异步的 要同步给其他人 53 | 54 | dzapi.DzSyncData("http", result) 55 | end) 56 | 57 | 58 | 59 | ``` -------------------------------------------------------------------------------- /docs/README.md: -------------------------------------------------------------------------------- 1 | --- 2 | footer: Copyright © 2016-Present 阿七 火凌之凤 3 | --- 4 | 5 | # 内置 JAPI 6 | 7 | 地图内置 japi 插件的文档 8 | 9 | 网址 http://japi.war3rpg.top/ 点击查看 可以收藏起来 10 | 11 | lua 交流 有需要的同学可以在群里讨论 12 | 13 | lua 交流 6 群 695709314 正常 14 | 15 | --- 16 | 17 | - 内置文档 阿七 火凌之凤 18 | 19 | - 域名/服务器维护 火凌之凤 20 | 21 | - 服务器 火凌之凤 22 | 23 | --- 24 | 25 | 内置 lua 引擎基于 ydlua 进行扩展, 请先阅读 26 | 27 | - [ydlua 引擎文档](/lua-engine.md) 28 | - [ydlua rsa 加密算法](/lua-rsa.md) 29 | 30 | --- 31 | 32 | 文档分类 所有接口都通用 1.24e 1.26 1.27 33 | 34 | - [Japi](/Japi/) 35 | - [Lua](/Lua/) 36 | - [界面](/Script/界面/) 37 | - [例子](/Script/例子/) 38 | 39 | --- 40 | 41 | ## 更新日志 42 | 内置 1.49 版本更新内容: 43 | - [**物品japi**](/1.49/物品japi.md) 44 | - [**装饰物japi**](/1.49/装饰物japi.md) 45 | - [**技能japi**](/1.49/技能japi.md) 46 | 47 | 48 | 内置 1.48 版本更新内容: 49 | 50 | 1. 新增 修改单位移动类型 japi (刷新寻路视野飞行高度) \* [点击这里](/1.48/修改单位移动类型.md) 51 | 2. 新增 修改单位碰撞体积大小 japi (刷新寻路) [点击这里](/1.48/修改单位碰撞体积大小.md) 52 | 3. 新增 获取物品技能 handle 的 japi \* [点击这里](/1.48/获取物品技能handle.md) 53 | 4. 新增 jass.message 里 本地发布 物品命令 [_点击这里_](/Script/例子/智能施法.md) 54 | 5. 修复 特效渲染, 必须在屏幕内的特效才会进行渲染 55 | 6. ui 增强 FrameSetTexture 接口 可以修改 SimpleTexture 控件的图片 56 | 7. ui 增强 FrameSetText 接口 可以修改 SimpleString 控件的文本 57 | 8. ui 增强 FrameShow 接口 可以对 Simple 类型的控件使用 隐藏/显示原生 ui 58 | 9. ui 增强 FrameSetEnable 接口可以对 Simple 类型的控件使用 屏蔽/恢复 事件 59 | 10. 新增 ui 接口 获取框选按钮的 japi 60 | 11. 新增 ui 接口 获取 buff 按钮的 japi 61 | 12. 新增 ui 接口 动态 绑定/解除 任意 frame 控件 在 原生魔兽 ui simple 类型控件下 62 | 13. 新增 ui 接口 FrameIsShow 可以判断 simple/frame 控件是否显示 63 | 14. 新增 ui 接口 获取左下角农民按钮的 japi 64 | 15. 新增 ui 接口 修改/获取 原生按钮贴图的 japi 65 | 16. 新增 ui 接口 修改/获取 Simple 类型控件的 父控件 66 | 17. 新增 ui 接口 获取技能按钮的 右下角 ui 接口 67 | 18. 新增 ui 接口 获取技能按钮的 右下角数字文本控件 ui 接口 68 | 19. 重写 message.get_select_list() 从 ui 上进行异或获取框选单位 不会再有延迟了。 69 | 70 | - [**1.48 版本**](/1.48/) 71 | 72 | --- 73 | 74 | 内置 1.47 版本更新内容 75 | 76 | 1. 新增 japi 获取玩家 11 跟网易平台的 uid 接口 77 | 2. 新增 lua 异步获取当前玩家选择单位列表 78 | 3. 新增 japi 获取特效颜色的接口 79 | 4. 修复 japi 设置特效颜色 ui 设置模型颜色 接口的透明通道无效的问题 80 | 5. 新增 japi 设置 单位、特效、ui 模型 的 粒子缩放的接口 81 | 6. 新增 japi 动态修改 ui frame 控件 解锁、锁定 屏幕限制接口 82 | 7. 增强 所有特效接口都加一层类型保护, 防止填入错误的 handle 而崩溃,并隐藏渲染特效崩溃时提示 83 | 8. 修复 lua 引擎 日志打印太长会崩溃的 bug 84 | 85 | - [**1.47 版本**](/1.47/) 86 | 87 | --- 88 | 89 | 内置 1.46 版本更新内容 90 | 91 | 1. 新增 绑定特效接口 92 | 2. 新增 解除特效绑定接口 93 | 3. 修复 播放特效动画接口名字错误的问题 94 | 4. 修复 获取 ui 文本控件宽高错误的 bug 95 | 5. 增强 j2b 加密的强度 96 | 6. 修复 先 j2b 再 slk 部分地图丢失字符串的问题。 97 | 7. 修正 内置的 api 可以对 simple 控件设置位置 跟缩放 98 | 8. 重写 japi.FrameSetScale 使其对子控件生效 99 | 9. 修复 ui 模型绑特效 绑点错误的 bug 100 | 10. 去掉对 xp 支持, 放弃 xp 用户。 101 | 11. ui 自动同步事件 进行合并 减少队列时长 102 | 103 | - [**1.46 版本**](/1.46/) 104 | 105 | --- 106 | 107 | 内置 1.45 版本更新内容 108 | 109 | 1. 新增 播放 ui 模型字符串动画 110 | 2. 新增 获取 ui 模型所有动画名 动画时长 111 | 3. 新增 添加 ui 模型绑点特效 112 | 4. 新增 移除 ui 模型绑点特效 113 | 5. 新增 播放 特效 handle 的字符串名动画 114 | 6. 优化 ui 滚动面板的效率 115 | 7. 修复 获取 ui 模型 z 轴 api 错误的 bug 116 | 117 | --- 118 | 119 | 内置 1.44 版本更新内容 120 | 121 | 1. 新增 获取 frame 父控件([点击查看](/1.44/获取父控件.md)) 以及 遍历子控件的 api ([点击查看](/1.44/获取子控件.md)) 122 | 2. 新增 新的 3d ui 模型控件 以及一系列 api ([点击查看](/Script/界面/模型2.md)) 123 | 3. 新增 设置控件显示视口的方法 可以做遮罩 滚动面板 ([点击查看](/1.44/设置控件视口.md)) 124 | 4. 新增 获取当前魔兽 是否窗口化([点击查看](/1.44/获取是否窗口化模式.md)), 设置窗口大小 ([点击查看](/1.44/设置窗口大小.md)) 125 | 5. 新增 获取当前鼠标指示器状态 ([点击查看](/Lua/message/目标指示器.md)) 126 | 6. 新增 获取商店选择玩家的单位 ([点击查看](/1.44/获取商店目标.md)) 127 | 7. 修复 部分用户 j2b 加密时崩溃的 bug 128 | 129 | --- 130 | 131 | - [**1.44 版本**](/1.44/) 132 | 133 | | 备案号 | [**京 ICP 备 17050818 号**](https://beian.miit.gov.cn/) | 134 | | :----------------------- | ------------------------------------------------------: | 135 | | Copyright © 2016-Present | 阿七 火凌之凤 | 136 | -------------------------------------------------------------------------------- /docs/Script/README.md: -------------------------------------------------------------------------------- 1 | --- 2 | autoIgnore: true 3 | --- 4 | 5 | - [**Script**](./) 6 | - [**界面**](./界面) 7 | - [**例子**](./例子) 8 | -------------------------------------------------------------------------------- /docs/Script/例子/README.md: -------------------------------------------------------------------------------- 1 | --- 2 | autoIgnore: true 3 | --- 4 | 5 | - [**Script**](../) 6 | - [**例子**](./) 7 | - [**智能施法**](./智能施法.md) 8 | - [**聊天弹幕**](./聊天弹幕.md) 9 | - [**模型镜头查看器**](./模型镜头查看器.md) -------------------------------------------------------------------------------- /docs/Script/例子/模型镜头查看器.md: -------------------------------------------------------------------------------- 1 | # 模型镜头查看器 2 | 3 | 用来model2控件的模型调整,操作方式跟绿苹果一样,操作好了按Ctrl + C 将数据复制出来即可 4 | 5 | 6 | [镜头查看器](https://gitee.com/merkave/document) 7 | 8 | 9 | 10 | 使用方法 先加载上面的脚本 在model2的构造参数里 加一行 debug_camera = true, 即可 11 | 12 | -------------------------------------------------------------------------------- /docs/Script/例子/聊天弹幕.md: -------------------------------------------------------------------------------- 1 | # 聊天弹幕 2 | 3 | 聊天弹幕 聊天的时候 往屏幕上飘过一条弹幕消息 4 | 5 | 内置japi 解锁了 魔兽frame控件锁定在屏幕内的限制, 可以随意移出屏幕外。 6 | 7 | 演示如下: 8 | 9 | ```lua 10 | 11 | local jass = require 'jass.common' 12 | local slk = require 'jass.slk' 13 | 14 | --弹幕在屏幕的时间 15 | local time = 10 16 | 17 | 18 | local function barrage(handle, text, art) 19 | local start = { 20 | x = 1920, 21 | y = math.random(0, 1080), --魔兽随机数 切记不要异步调用 22 | } 23 | 24 | 25 | --创建ui控件 26 | local panel = class.panel:builder 27 | { 28 | x = start.x, 29 | y = start.y, 30 | w = 32, 31 | h = 32, 32 | normal_image = art, --图标 33 | 34 | text = { 35 | type = 'text', 36 | x = 38, 37 | w = 200, 38 | text = jass.GetPlayerName(handle) .. ': '.. text, --文本 39 | align = 'left', 40 | font_size = 18, 41 | } 42 | } 43 | 44 | 45 | local speed = 1920 / time / 60 46 | --渲染帧计时器 1秒60帧 16毫秒的间隔 47 | game.tick.loop(16, function (t) 48 | start.x = start.x - speed 49 | --刷新位置 50 | panel:set_position(start.x, start.y) 51 | 52 | --超出屏幕一段距离后 计时器跟ui一起删除。 53 | if start.x + 300 < 0 then 54 | t:remove() 55 | panel:destroy() 56 | end 57 | end) 58 | end 59 | 60 | 61 | local group = jass.CreateGroup() 62 | 63 | --获取单位图标 64 | local function get_art(unit) 65 | if unit == nil or unit == 0 then 66 | return '' 67 | end 68 | local data = slk.unit[jass.GetUnitTypeId(unit)] 69 | if data == nil then 70 | return '' 71 | end 72 | return data.art 73 | end 74 | 75 | --玩家聊天的时候 选取单位组 拿到他的英雄图标 之后发送弹幕 76 | ac.game:event '玩家-聊天' (function (_, player, str) 77 | 78 | jass.GroupClear(group) 79 | jass.GroupEnumUnitsOfPlayer(group, player.handle, nil) 80 | 81 | local unit = FirstOfGroup(group) 82 | 83 | --发送弹幕 84 | barrage(player.handle, str, get_art(unit)) 85 | 86 | end) 87 | 88 | ``` -------------------------------------------------------------------------------- /docs/Script/界面/README.md: -------------------------------------------------------------------------------- 1 | --- 2 | autoIgnore: true 3 | --- 4 | 5 | - [**Script**](../) 6 | 7 | - [**界面**](./) 8 | 9 | - [**前言**](./前言.md) 10 | - [**构造器**](./构造器.md) 11 | - [**构造方法**](./构造方法.md) 12 | - [**元类**](./元类.md) 13 | - [**基类**](./基类.md) 14 | - [**面板**](./面板.md) 15 | - [**图像**](./图像.md) 16 | - [**按钮**](./按钮.md) 17 | - [**文本**](./文本.md) 18 | - [**编辑框**](./编辑框.md) 19 | - [**模型**](./模型.md) 20 | - [**模型 2**](./模型2.md) 21 | 22 | - [**自定义控件**](./自定义控件.md) 23 | - [**事件管理**](./事件管理.md) 24 | - [**热更新**](./热更新.md) 25 | -------------------------------------------------------------------------------- /docs/Script/界面/事件管理.md: -------------------------------------------------------------------------------- 1 | --- 2 | autoGroup-2: 其他 3 | order: 14 4 | --- 5 | 6 | # 事件管理 7 | 8 | 拿 [按钮](/Script/界面/按钮.md) 做例子 9 | 10 | ```lua 11 | local button = class.button:builder 12 | { 13 | x = 300, 14 | y = 300, 15 | w = 64, 16 | h = 64, 17 | sync_key = 'only_one', --选填 没填不会响应同步事件 sync_key 要唯一不重复 18 | keys = {'F2', 'ESC'}, --选填 绑定快捷键 只有其中的快捷键才会响应事件 19 | } 20 | 21 | function button:on_button_clicked() 22 | print('异步点击按钮事件', self) 23 | end 24 | 25 | function button:on_button_key_down(str) 26 | print('异步的按键事件', self, str) 27 | end 28 | 29 | --事件前缀改为on_sync 即可变成同步事件 并且第一个参数是为同步操作的玩家 30 | function button:on_sync_button_clicked(player) 31 | print('同步点击按钮事件', self, player) 32 | end 33 | 34 | function button:on_sync_button_key_down(player, str) 35 | print('同步的按键事件', self, player, str) 36 | end 37 | 38 | 39 | ``` 40 | 41 | 当面板之上 有多个按钮 并且事件对应的操作相似的,例如 背包中会有多个按钮 42 | 43 | 可以由父控件来管理他的所有子控件事件 44 | 45 | 写一个按钮组做例子 46 | 47 | ```lua 48 | 49 | local group_index = 0 50 | 51 | class.group = extends(class.panel) 52 | { 53 | new = function (parent, image, x, y, width, height, line, column) 54 | local max_width = (width + 10) * column 55 | local max_height = (height + 10) * line 56 | 57 | local panel = class.panel.new(parent,'', x, y, max_width, max_height) 58 | panel.__index = class.group 59 | 60 | group_index = group_index + 1 61 | 62 | local button_list = {} 63 | local i = 0 64 | for a = 1, line do 65 | for b = 1, column do 66 | local x = (width + 10) * (b - 1) 67 | local y = (height + 10) * (a - 1) 68 | 69 | local button = panel:add_button(image, x, y, width, height) 70 | button_list[i] = button 71 | button.slot_id = #button_list 72 | 73 | button.sync_key = 'group_' .. group_index .. '_' .. button.slot_id 74 | end 75 | end 76 | 77 | panel.button_list = button_list 78 | return panel 79 | end, 80 | 81 | 82 | --@ self: group 自身 83 | --@ button: 响应事件的按钮 84 | on_button_clicked = function (self,button) 85 | print('按钮异步点击',button, button.slot_id) 86 | end, 87 | 88 | --@ self: group 自身 89 | --@ button: 响应事件的按钮 90 | --@ player: 响应事件的玩家 91 | on_sync_button_clicked = function (self, button, player) 92 | print('按钮同步点击',button, button.slot_id) 93 | end, 94 | 95 | } 96 | 97 | 98 | --这样就会在0,0位置 创建一块 带有5 * 3 的数量的按钮 并且 每个按钮的大小是64*64 99 | local group = class.group.create('button.blp', 0, 0, 64, 64, 5, 3) 100 | 101 | ``` 102 | -------------------------------------------------------------------------------- /docs/Script/界面/元类.md: -------------------------------------------------------------------------------- 1 | --- 2 | order: 9 3 | --- 4 | 5 | # 元类 class 6 | 7 | ### extends 继承 8 | 9 | 该函数实现了多重继承以及多继承 10 | 11 | - 多重继承: 12 | 13 | ```lua 14 | local classA = {} 15 | local classB = extends(classA) { } 16 | local classC = extends(classB) { } 17 | 18 | ``` 19 | 20 | 多继承: 21 | 22 | ```lua 23 | local classA = {} 24 | local classB = {} 25 | 26 | classC = extends(classA,classB) { } 27 | 28 | ``` 29 | 30 | class 是一个用来生成新类的类 31 | 32 | 例如 33 | 34 | ```lua 35 | class.text = extends(class.panel) { 36 | new = function (parent, ...) 37 | --... 此处略去1万字 38 | return object 39 | end, 40 | } 41 | ``` 42 | 43 | 会给 text 类 默认生成几个模板函数 44 | 45 | ```lua 46 | 47 | --创建控件 48 | function class.text.create(...) 49 | return class.text.new(nil,...) 50 | end 51 | 52 | --作为子控件被创建 53 | function class.text.add_child(parent, ...) 54 | return class.text.new(parent, ...) 55 | end 56 | 57 | --获取单例 58 | function class.text.get_instance(...) 59 | local instance = class.text.instance 60 | if instance == nil then 61 | instance = class.text.create() 62 | class.text.instance = instance 63 | end 64 | return instance 65 | end 66 | 67 | 68 | --添加为父控件添加 子文本控件 69 | --注意 这里是给 panel 注册的 所有 继承自panel类的 子类 都会自动拥有 add_text方法 70 | function class.panel:add_text(...) 71 | return class.text.new(self, ...) 72 | end 73 | 74 | ``` 75 | -------------------------------------------------------------------------------- /docs/Script/界面/前言.md: -------------------------------------------------------------------------------- 1 | --- 2 | order: 12 3 | --- 4 | 5 | # 界面 6 | 7 | 概述一下界面的内容 8 | 9 | 这套 UI 界面以面向对象为核心思想, 主要以继承为主减少代码重复提高利用率为准则。 10 | 11 | 创建控件可以用以下 2 种方式 12 | 13 | - [**构造器**](/Script/界面/构造器.md) 14 | - [**构造方法**](/Script/界面/构造方法.md) 15 | 16 | 类的层次关系如下 17 | 18 | - [**基础类**](/Script/界面/基类.md) 19 | - [**面板类**](/Script/界面/面板.md) 20 | - [**图像**](/Script/界面/图像.md) 21 | - [**按钮类**](/Script/界面/按钮.md) 22 | - [**文本类**](/Script/界面/文本.md) 23 | - [**编辑框**](/Script/界面/编辑框.md) 24 | - [**模型**](/Script/界面/模型.md) 25 | 26 | 看完之后 可以尝试自己封装 27 | 28 | - [**自定义控件**](/Script/界面/自定义控件.md) 29 | - [**事件管理**](/Script/界面/事件管理.md) 30 | -------------------------------------------------------------------------------- /docs/Script/界面/图像.md: -------------------------------------------------------------------------------- 1 | --- 2 | order: 6 3 | --- 4 | 5 | # 图像类 class.texture 6 | 7 | 继承自 [面板类](/Script/界面/面板.md) 8 | 9 | 用来显示图像功能 基本参数跟面板一致 10 | 11 | 所有类型的控件 都带有 normal_image 属性 都可以调用 set_normal_image 12 | 13 | 单独使用图像的时候可以用该类型控件 14 | -------------------------------------------------------------------------------- /docs/Script/界面/文本.md: -------------------------------------------------------------------------------- 1 | --- 2 | order: 5 3 | --- 4 | 5 | # 文本类 class.text 6 | 7 | 继承自 [面板类](/Script/界面/面板.md) 8 | 9 | # 属性 10 | 11 | - [构造器](/Script/界面/构造器.md) 12 | 13 | - 以下属性只有在构造时填入 在此之后只读不写 14 | 15 | | 名字 | 类型 | 说明 | 16 | | --------- | ------- | ------------------------- | 17 | | text | string | 初始化文本内容 | 18 | | align | string | 对齐方式 参照下面对照表 | 19 | | font_size | number | 字体大小 从 1~25 | 20 | | color | integer | 文本颜色 16 进制整数 ARGB | 21 | 22 | 对齐方式的对照表 23 | 24 | | 字符串 | 说明 | 25 | | ------------ | ---------- | 26 | | auto_newline | 自动换行 | 27 | | auto_size | 自适应宽高 | 28 | | auto_width | 自适应宽 | 29 | | auto_height | 自适应高 | 30 | | topleft | 左上 | 31 | | top | 上 | 32 | | topright | 右上 | 33 | | left | 左 | 34 | | center | 居中 | 35 | | right | 右 | 36 | | bottomleft | 左下 | 37 | | bottom | 下 | 38 | | bottomright | 右下 | 39 | 40 | # 方法 41 | 42 | ### set_text 43 | 44 | 设置文本 45 | 46 | #### 参数 47 | 48 | | 名字 | 类型 | 说明 | 49 | | ---- | ------ | -------- | 50 | | text | string | 文本内容 | 51 | 52 | ```lua 53 | text:set_text(text) 54 | ``` 55 | 56 | ### set_color 57 | 58 | 设置颜色 59 | 60 | #### 参数 61 | 62 | | 名字 | 类型 | 说明 | 63 | | ----- | ------- | ---------------- | 64 | | color | integer | 16 进制颜色 ARGB | 65 | 66 | ```lua 67 | text:set_color(color) 68 | ``` 69 | -------------------------------------------------------------------------------- /docs/Script/界面/构造器.md: -------------------------------------------------------------------------------- 1 | --- 2 | order: 11 3 | --- 4 | 5 | # 构造器 builder 6 | 7 | 将布局数据构造成指定类型的控件 8 | 支持多层结构的数据 9 | 10 | ### 基础的控件类 11 | 12 | | 名字 | 类型 | 说明 | 13 | | ----------------------------- | ------- | --------------------------------- | 14 | | [面板](/Script/界面/面板.md) | panel | 用来做底板 继承的子类可添加子控件 | 15 | | [图像](/Script/界面/图像.md) | texture | 用来只显示图像不做任何操作 | 16 | | [按钮](/Script/界面/按钮.md) | button | 用来响应用户鼠标点击进入离开操作 | 17 | | [文本](/Script/界面/文本.md) | text | 用来显示文字 | 18 | | [编辑框](/Script/界面/编辑框.md) | edit | 用来获取用户输入文字 | 19 | | [模型](/Script/界面/模型.md) | model | 用来显示 mdx mdl 模型 | 20 | | [模型 2](/Script/界面/模型2.md) | model | 用来显示 3d 模型 | 21 | 22 | # 例子 23 | 24 | - 构造一个面板 25 | 26 | ```lua 27 | local panel = class.panel:builder { 28 | x = 300, 29 | y = 300, 30 | w = 300, 31 | h = 300, 32 | normal_image = "xx.blp", 33 | } 34 | 35 | ``` 36 | 37 | - 构造一个图像 38 | 39 | ```lua 40 | local texture = class.texture:builder { 41 | x = 300, 42 | y = 300, 43 | w = 300, 44 | h = 300, 45 | normal_image = "xx.blp", 46 | } 47 | 48 | ``` 49 | 50 | - 构造一个按钮 51 | 52 | ```lua 53 | local button = class.button:builder { 54 | x = 300, 55 | y = 300, 56 | w = 300, 57 | h = 300, 58 | normal_image = "xx.blp", 59 | } 60 | 61 | ``` 62 | 63 | - 构造一个文本 64 | 65 | ```lua 66 | local text = class.text:builder { 67 | x = 300, 68 | y = 300, 69 | w = 300, 70 | h = 300, 71 | text = "文本内容", 72 | align = 'center', 73 | font_size = 15, 74 | } 75 | 76 | ``` 77 | 78 | - 构造一个按钮带文字 79 | 80 | 当 x y 轴不填时 默认是 0 81 | w h 不填时 默认为父控件大小 82 | 83 | ```lua 84 | local button = class.button:builder { 85 | x = 300, 86 | y = 300, 87 | w = 300, 88 | h = 300, 89 | normal_image = "xx.blp", 90 | 91 | text = { 92 | type = "text", 93 | text = "文字内容", 94 | align = 'center', 95 | font_size = 15, 96 | } 97 | } 98 | 99 | button.text:set_text("新的文本内容") 100 | ``` 101 | 102 | 等价于 103 | 104 | ```lua 105 | local button = class.button:builder { 106 | x = 300, 107 | y = 300, 108 | w = 300, 109 | h = 300, 110 | normal_image = "xx.blp", 111 | } 112 | 113 | button.text = class.text:builder 114 | parent = button, 115 | text = "文字内容", 116 | align = 'center', 117 | font_size = 15, 118 | } 119 | 120 | button.text:set_text("新的文本内容") 121 | ``` 122 | 123 | - 创建一个像魔兽一样的技能按钮 124 | 125 | ```lua 126 | 127 | local w, h = 91, 71 128 | local button = class.button:builder { 129 | x = 100, 130 | y = 100, 131 | w = w, 132 | y = h, 133 | normal_image = "button.blp", 134 | 135 | --右下角数字背景 136 | icon = { 137 | type = 'texture', 138 | x = w - 32, 139 | y = h - 32, 140 | w = 32, 141 | h = 32, 142 | num = { 143 | type = 'text', 144 | text = '10', 145 | align = 'center', 146 | font_size = 8, 147 | } 148 | }, 149 | 150 | --cd 模型 151 | model = { 152 | type = 'model', 153 | model = [[UI\Feedback\Cooldown\UI-Cooldown-Indicator.mdl]], 154 | is_show = false, --默认隐藏 155 | animation = 0, 156 | animation_loop = false, 157 | scale_x = 0.65, 158 | scale_y = 0.85, 159 | } 160 | } 161 | 162 | ``` 163 | -------------------------------------------------------------------------------- /docs/Script/界面/构造方法.md: -------------------------------------------------------------------------------- 1 | --- 2 | order: 10 3 | --- 4 | 5 | # 构造方法 6 | 7 | - 每个类的构造方法约定为 new 8 | - 且第一个参数为父控件 可以为 nil 9 | 例如 10 | 11 | ```lua 12 | class.text = extends(class.panel) { 13 | new = function (parent, ...) 14 | --... 此处略去1万字 15 | return object 16 | end, 17 | } 18 | ``` 19 | 20 | [元类](/Script/界面/元类.md) 将会自动生成其他构造方法 21 | 22 | ### 基础的控件类 23 | 24 | | 名字 | 类型 | 说明 | 25 | | ----------------------------- | ------- | --------------------------------- | 26 | | [面板](/Script/界面/面板.md) | panel | 用来做底板 继承的子类可添加子控件 | 27 | | [图像](/Script/界面/图像.md) | texture | 用来只显示图像不做任何操作 | 28 | | [按钮](/Script/界面/按钮.md) | button | 用来响应用户鼠标点击进入离开操作 | 29 | | [文本](/Script/界面/文本.md) | text | 用来显示文字 | 30 | | [编辑框](/Script/界面/编辑框.md) | edit | 用来获取用户输入文字 | 31 | | [模型](/Script/界面/模型.md) | model | 用来显示 mdx mdl 模型 | 32 | 33 | # 例子 34 | 35 | - 36 | 37 | - 构造一个面板 38 | 39 | ```lua 40 | -- path, x, y, w, h 41 | local panel = class.panel.create("xx.blp", 300, 300, 300, 300) 42 | 43 | ``` 44 | 45 | - 构造一个图像 46 | 47 | ```lua 48 | local texture = class.texture.create("xx.blp", 300, 300, 300, 300) 49 | 50 | ``` 51 | 52 | - 构造一个按钮 53 | 54 | ```lua 55 | local button = class.button.create("xx.blp", 300, 300, 300, 300) 56 | 57 | ``` 58 | 59 | - 构造一个文本 60 | 61 | ```lua 62 | --text,x, y, w, h, font_size, align 63 | local text = class.text.create("文本内容", 300, 300, 300, 300, 15, "center") 64 | 65 | ``` 66 | 67 | - 构造一个按钮带文字 68 | 69 | 当 x y 轴不填时 默认是 0 70 | w h 不填时 默认为父控件大小 71 | 72 | ```lua 73 | local button = class.button.create("xx.blp", 300, 300, 300, 300) 74 | button.text = button:add_text("文本内容", nil, nil, nil, nil, 15, "center") 75 | 76 | button.text:set_text("新的文本内容") 77 | ``` 78 | 79 | - 创建一个像魔兽一样的技能按钮 80 | 81 | ```lua 82 | local w, h = 91, 71 83 | local button = class.button.create("xx.blp", 100, 100, w, h) 84 | button.icon = button:add_texture("xx2.blp", w - 32, h - 32, 32, 32) 85 | button.icon.text = button.icon:add_text("10", nil, nil, nil, nil, 8, 'center') 86 | 87 | local path = [[UI\Feedback\Cooldown\UI-Cooldown-Indicator.mdl]] 88 | button.model = button:add_model(path) 89 | 90 | button.model:hide() 91 | button.model:set_scale(0.65, 0.85) 92 | 93 | ``` 94 | -------------------------------------------------------------------------------- /docs/Script/界面/模型2.md: -------------------------------------------------------------------------------- 1 | --- 2 | order: 1 3 | --- 4 | 5 | # 模型类 class.model2 6 | 7 | 继承自 [模型类](/Script/界面/模型.md) 8 | 9 | 可以使用模型的任何属性 10 | 11 | 该模型 可以直接显示 不需要修改模型文件 12 | 13 | 每个模型都有独立的 场景跟镜头 14 | 15 | # 方法 16 | 17 | ### set_model 18 | 19 | 设置模型 20 | 21 | #### 参数 22 | 23 | | 名字 | 类型 | 说明 | 24 | | -------- | ------- | ------------------ | 25 | | model | string | 模型路径 | 26 | | color_id | integer | 0~15 的玩家颜色 id | 27 | 28 | ```lua 29 | model:setmodel("xx.blp", 0) 30 | ``` 31 | 32 | ### set_camera_source 33 | 34 | 设置模型的镜头位置, 可以决定从什么角度观察模型 镜头越远 模型越小。 35 | 36 | #### 参数 37 | 38 | | 名字 | 类型 | 说明 | 39 | | ---- | ------ | ---- | 40 | | x | number | 坐标 | 41 | | y | number | 坐标 | 42 | | z | number | 坐标 | 43 | 44 | ```lua 45 | model:set_camera_source(x, y, z) 46 | ``` 47 | 48 | ### set_camera_target 49 | 50 | 设置模型的镜头目标位置, 就是镜头的焦点 一般对着模型位置 51 | 52 | #### 参数 53 | 54 | | 名字 | 类型 | 说明 | 55 | | ---- | ------ | ---- | 56 | | x | number | 坐标 | 57 | | y | number | 坐标 | 58 | | z | number | 坐标 | 59 | 60 | ```lua 61 | model:set_camera_source(x, y, z) 62 | ``` 63 | 64 | ### set_model_position 65 | 66 | 设置模型在场景内的坐标 跟镜头位置 镜头目标位置有关联 影响显示 67 | 68 | #### 参数 69 | 70 | | 名字 | 类型 | 说明 | 71 | | ---- | ------ | ---- | 72 | | x | number | 坐标 | 73 | | y | number | 坐标 | 74 | | z | number | 坐标 | 75 | 76 | ```lua 77 | model:set_model_position(x, y, z) 78 | ``` 79 | 80 | ### get_model_position 81 | 82 | 获取模型绘制 83 | 84 | #### 返回值 85 | 86 | | 名字 | 类型 | 说明 | 87 | | ---- | ------ | ---- | 88 | | x | number | 坐标 | 89 | | y | number | 坐标 | 90 | | z | number | 坐标 | 91 | 92 | ```lua 93 | local x, y, z = model:get_model_position() 94 | ``` 95 | -------------------------------------------------------------------------------- /docs/Script/界面/热更新.md: -------------------------------------------------------------------------------- 1 | --- 2 | autoGroup-2: 其他 3 | order: 15 4 | --- 5 | 6 | # 热更新 7 | 8 | - 按 F5 即可热更新本地脚本刷新 UI 界面内容 不用重进游戏。 9 | -------------------------------------------------------------------------------- /docs/Script/界面/编辑框.md: -------------------------------------------------------------------------------- 1 | --- 2 | order: 3 3 | --- 4 | 5 | # 编辑框 class.edit 6 | 7 | 继承自 [面板类](/Script/界面/面板.md) 8 | 9 | # 属性 10 | 11 | - [构造器](/Script/界面/构造器.md) 12 | 13 | - 以下属性只有在构造时填入 在此之后只读不写 14 | 15 | | 名字 | 类型 | 说明 | 16 | | --------- | ------ | ---------------- | 17 | | font_size | number | 字体大小 从 1~25 | 18 | 19 | # 方法 20 | 21 | ### set_text 22 | 23 | 设置文本 24 | 25 | #### 参数 26 | 27 | | 名字 | 类型 | 说明 | 28 | | ---- | ------ | ---------------- | 29 | | text | string | 主动设置一次文本 | 30 | 31 | ```lua 32 | edit:set_text(text) 33 | ``` 34 | 35 | ### get_text 36 | 37 | 获取文本 38 | 39 | #### 返回 40 | 41 | 索引|类型|说明 42 | 1|string| 返回编辑框的文本 43 | 44 | ```lua 45 | local text = edit:get_text() 46 | ``` 47 | 48 | ### set_focus 49 | 50 | 设置焦点 51 | 52 | #### 参数 53 | 54 | | 名字 | 类型 | 说明 | 55 | | --------- | ------- | -------------------- | 56 | | is_enable | boolean | 开启后键盘输入在里面 | 57 | 58 | ```lua 59 | edit:set_focus(is_enable) 60 | ``` 61 | 62 | # 事件 63 | 64 | ### on_edit_text_changed 65 | 66 | 当编辑框文本发送改变时 67 | 68 | #### 参数 69 | 70 | | 名字 | 类型 | 说明 | 71 | | ------- | ------ | -------- | 72 | | new_str | string | 新的内容 | 73 | | old_str | string | 旧的内容 | 74 | 75 | ```lua 76 | function edit:on_edit_text_changed(new_str, old_str) 77 | 78 | end 79 | ``` 80 | -------------------------------------------------------------------------------- /docs/Script/界面/自定义控件.md: -------------------------------------------------------------------------------- 1 | --- 2 | autoGroup-2: 其他 3 | order: 13 4 | --- 5 | 6 | # 自定义控件 7 | 8 | 将特定 UI 布局封装成抽象类,以便复用代码,节省重复繁杂的操作 9 | 10 | 先看过 [构造方法](/Script/界面/构造方法.md) 11 | 12 | 首先 我们要定义一个新的类 13 | 例如 继承面板类的 新类 diy 14 | 应该这样写 必须要有一个构造方法 new 内容如下 15 | 16 | ```lua 17 | class.diy = extends(class.panel) 18 | { 19 | new = function (parent,path,x,y,width,height) 20 | local panel = class.panel.new(parent,path,x,y,width,height) 21 | --改变panel对象的类 22 | panel.__index = class.diy 23 | return panel 24 | end, 25 | } 26 | 27 | 28 | local diy = class.diy.create('x.blp', 0, 0, 256, 256) 29 | ``` 30 | 31 | 再比如 如何写一个进度条类呢 32 | 简单的进度条布局是由几部分组成 33 | 34 | - 背景黑底图片 35 | - 上面有颜色用来显示进度的图片 36 | - 图片之上还有一个文本 用来查看具体数值的 37 | 38 | 然后开始定义一个类 39 | 这个类需要有 40 | 41 | - 构造方法 42 | - 设置进度条的方法 43 | 44 | ```lua 45 | class.progress = extends(class.panel) 46 | { 47 | --构造方法 派生进度条实例化对象所用 48 | new = function (parent, path, x, y, width, height) 49 | --底图是一张黑色的图片 这个可以写死 50 | local panel = class.panel.new(parent,'black.blp', x, y, width, height) 51 | panel.__index = class.progress 52 | 53 | --创建传进来路径的一张图片,用来显示进度条 54 | panel.texture = panel:add_texture(path, 0, 0, width, height) 55 | 56 | --创建一个文本控件 用来显示具体数值 57 | panel.text = panel:add_text('', 0, 0, width, height,'center') 58 | 59 | return panel 60 | end, 61 | 62 | 63 | --设置进度条方法 64 | --@ self 对象自己 65 | --@ value: number 当前进度 66 | --@ max_value: number 最大进度 67 | set_value = function (self, value, max_value) 68 | local rate = 0 69 | if max_value > 0 then 70 | rate = value / max_value 71 | end 72 | 73 | rate = math.max(0,rate) 74 | 75 | --改变图层尺寸 为进度值百分比 76 | self.texture:set_control_size(self.w * rate, self.h) 77 | 78 | local str = string.format(' %.0f / %.0f (%.2f)',value, max_value, rate) 79 | --设置文本内容 80 | self.text:set_text(str) 81 | end, 82 | } 83 | 84 | --派生实例化对象 85 | local progress = class.progress.create('red.blp',100,100,256,32) 86 | 87 | --调用对象方法 设置进度 改变UI 88 | progress:set_value(50,100) 89 | 90 | 91 | --派生实例化对象 92 | local progress2 = class.progress.create('red.blp',100,500,256,32) 93 | 94 | --调用对象方法 设置进度 改变UI 95 | progress2:set_value(80,100) 96 | 97 | ``` 98 | -------------------------------------------------------------------------------- /docs/Script/界面/面板.md: -------------------------------------------------------------------------------- 1 | --- 2 | order: 7 3 | --- 4 | 5 | # 面板类 class.panel 6 | 7 | 继承自 [基类](/Script/界面/基类.md) 8 | 9 | # 属性 10 | 11 | - [构造器](/Script/界面/构造器.md) 12 | 13 | - 以下属性只有在构造时填入 在此之后只读不写 14 | 15 | | 名字 | 类型 | 说明 | 16 | | --------- | ------- | --------------- | 17 | | is_scroll | boolean | 是否是滚动面板 | 18 | | scroll_y | number | 滚动面板的 y 轴 | 19 | 20 | # 方法 21 | 22 | ### add 23 | 24 | 添加子控件 25 | 26 | #### 参数 27 | 28 | | 名字 | 类型 | 说明 | 29 | | ----- | -------- | --------------------------------------- | 30 | | class | 控件类 | 给当前控件按照指定控件类 添加一个子控件 | 31 | | ... | 不定参数 | 构造控件所需参数 | 32 | 33 | #### 返回 34 | 35 | 索引|类型|说明 36 | 1|控件| 返回构造的控件对象 37 | 38 | ```lua 39 | local child = control:add(class.panel, ...) 40 | ``` 41 | 42 | ### add_effect 43 | 44 | 添加自带的自动施法 转圈圈的特效 按照控件相同大小 45 | 46 | ```lua 47 | control:add_effect() 48 | ``` 49 | 50 | ### clear_effect 51 | 52 | 清除特效 53 | 54 | ```lua 55 | control:clear_effect() 56 | ``` 57 | 58 | ### update_effect_size 59 | 60 | 重置特效大小 61 | 62 | ```lua 63 | control:update_effect_size() 64 | ``` 65 | 66 | ### set_scroll_y 67 | 68 | 设置滚动面板的 y 轴 切换显示的控件 69 | 70 | 控件必须是滚动面板才有效 71 | 72 | #### 参数 73 | 74 | | 名字 | 类型 | 说明 | 75 | | ---- | ------ | ---- | 76 | | y | number | y 轴 | 77 | 78 | ```lua 79 | control:set_scroll_y(y) 80 | ``` 81 | 82 | # 事件 83 | 84 | ### on_panel_scroll 85 | 86 | 当面板被滚动时 87 | 88 | #### 参数 89 | 90 | | 名字 | 类型 | 说明 | 91 | | ----- | ------- | ------------ | 92 | | is_up | boolean | 往上还是往下 | 93 | 94 | ```lua 95 | function panel:on_panel_scroll(is_up) 96 | 97 | end 98 | ``` 99 | -------------------------------------------------------------------------------- /docs/lua-rsa.md: -------------------------------------------------------------------------------- 1 | # lua引擎里的RSA算法 2 | 3 | ## 描述 4 | ydlua内置了一套 sha1算法 以及 rsa算法 这篇文字教你们如何使用。 5 | 6 | 7 | 先看以下代码 8 | 9 | ```lua 10 | 11 | local bignum = require "jass.bignum" 12 | 13 | local rsa = {} 14 | 15 | -- RSA公钥 16 | rsa.e = "00010001" 17 | rsa.n = "A6040BC5737510DFF2E4DF965D50338855E151AABF8DE41854B129F862438DB933427C7006210C6B73A4846C2422C490808A45E1119FC5DEE4F9B8AC9B0657D65CBB09BC1B3E71872F998A307542BF9F5D31C8559EB070128805D8C75E3D0F7604C9A3DD7B37A87A8746F7F92678198946A46F22ED60987B6110D4382EB4EB6D8B857216CD5CFBF5F396D6E19D2B4E140AAF850E3EDC0851E47B83F7678D1F706CE4A15B11205540811DE28EFA1426C2CB4F1A35C4256AB5AFEAA32FAB25675334530D8B8ACA71AD8AD3ED4B3B02895F4CEEA7F97B2E6E41655262147D5D5A7ED69E4E7D4A132691E1BD8728F648DE468787312A62DA4DFC5E3DC008F6A87CB1" 18 | 19 | -- RSA私钥 20 | local suc, key = pcall(require, '(ppk)') 21 | rsa.d = suc and key 22 | 23 | function rsa:init() 24 | if self.e then self.e_bn = bignum.new(bignum.bin(self.e)) end 25 | if self.n then self.n_bn = bignum.new(bignum.bin(self.n)) end 26 | if self.d then self.d_bn = bignum.new(bignum.bin(self.d)) end 27 | end 28 | 29 | --解码密文 需要 e n 30 | function rsa:decode(c) 31 | local c_bn = bignum.new(c) 32 | local m_bn = c_bn:powmod(self.e_bn, self.n_bn) 33 | return tostring(m_bn) 34 | end 35 | 36 | --编码生成密文 需要 d n 37 | function rsa:encode(m) 38 | local m_bn = bignum.new(m) 39 | local c_bn = m_bn:powmod(self.d_bn, self.n_bn) 40 | return tostring(c_bn) 41 | end 42 | 43 | rsa:init() 44 | 45 | local sha1 = bignum.sha1 46 | 47 | --生成签名 48 | -- 文本 49 | function rsa:get_sign(content) 50 | return self:encode(sha1(content)) 51 | end 52 | 53 | --验证签名 54 | -- 文本 55 | -- 签名 56 | function rsa:check_sign(content, sign) 57 | return sha1(content) == self:decode(sign) 58 | end 59 | 60 | ``` 61 | 62 | 上面这段代码 是 英萌里原本的例子 现在教你们如何使用这段代码 63 | 64 | rsa.e = 公钥指数 65 | 66 | rsa.n = 公钥模数 67 | 68 | rsa.d = 私钥指数 69 | 70 | 在上面的代码中 公钥部分 是放在代码里 可以被公开的部分 用来验证的 71 | 72 | 私钥是放在自己安全的环境里 不开放给别人知道的 73 | 74 | 75 | ## rsa的加密方法如下 76 | 1. 使用 公钥指数 + 私钥指数 在自己的电脑或服务器上 对源文进行加密 得到密文 77 | 2. 将密文保存传输 78 | 3. 对方的电脑上 使用 公钥指数 + 公钥模数 对密文进行解密 得到源文 79 | 80 | 81 | ## 由于上面的 私钥并没有开放 故此我们可以自己生成一套 自己的 公私钥来做数据加密 验签 82 | 83 | 1. 先下载安装 openssl 32/64位都可以 下载地址 http://slproweb.com/products/Win32OpenSSL.html 84 | 2. 在安装目录里 bin/目录下 新建一个 make.bat 85 | 3. 在bat里编辑以下内容后保存运行 86 | 87 | ``` 88 | openssl genrsa -out private_rsa.pem 1024 89 | 90 | openssl rsa -in private_rsa.pem -text -out private.txt 91 | 92 | ``` 93 | 94 | 4. 打开运行后生成的 private.txt 这个文件保存了公私钥 如果使用记得自己保存好,不要丢失外放 95 | 96 | 5. 打开后 97 | 98 | modulus: 下面的内容 就是 公钥模数 去掉 第一个00 再去掉空格换行冒号 就可以放在 最上面 rsa.n 的代码里 99 | 100 | publicExponent: 右边括号里 去掉0x 再补 3个0 就可以放到上面的 rsa.e里 101 | 102 | privateExponent: 下面的内容 就是 私钥指数 去掉空格换行冒号 就可以放在 最上面的 rsa.d 里 不过私钥 不能对外开放 不能随着代码一起发出, 切记小心。 103 | 104 | 105 | 如果需要在魔兽之外 独立程序使用 可以参考 [c++版本RSA例子](https://github.com/w4454962/RSA) 106 | 107 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "embedded-japi-vue-press", 3 | "version": "1.0.0", 4 | "description": "", 5 | "main": "index.js", 6 | "scripts": { 7 | "docs:dev": "SET NODE_OPTIONS=--openssl-legacy-provider && vuepress dev docs --temp .temp", 8 | "docs:build": "SET NODE_OPTIONS=--openssl-legacy-provider && vuepress build docs" 9 | }, 10 | "keywords": [], 11 | "author": "", 12 | "license": "ISC", 13 | "devDependencies": { 14 | "@vuepress/plugin-active-header-links": "^1.9.7", 15 | "@vuepress/plugin-back-to-top": "^1.9.7", 16 | "@vuepress/plugin-pwa": "^1.9.7", 17 | "jest": "^26.6.3", 18 | "prettier": "^2.3.0", 19 | "vuepress": "^1.9.7", 20 | "vuepress-plugin-auto-sidebar": "^2.3.2", 21 | "vuepress-plugin-check-md": "^0.0.2", 22 | "vuepress-plugin-code-copy": "^1.0.6", 23 | "vuepress-plugin-pangu": "^1.0.1", 24 | "vuepress-plugin-permalink-pinyin": "^1.1.0", 25 | "vuepress-plugin-seo": "^0.2.0", 26 | "vuepress-theme-reco": "^1.6.13" 27 | }, 28 | "dependencies": { 29 | "@babel/core": "^7.18.5", 30 | "cache-loader": "^4.1.0", 31 | "gitalk": "^1.7.2", 32 | "glob": "^7.1.7", 33 | "inflection": "^1.13.1", 34 | "lodash.escaperegexp": "^4.1.2", 35 | "lodash.sortby": "^4.7.0", 36 | "markdown-it": "^12.0.6", 37 | "markdown-it-meta": "0.0.1", 38 | "moment": "^2.29.3", 39 | "parent-module": "^2.0.0", 40 | "transliteration": "^2.1.8", 41 | "vuepress-plugin-analytics": "^1.0.3", 42 | "vuepress-theme-yuu": "^3.1.1" 43 | } 44 | } 45 | --------------------------------------------------------------------------------