├── .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 |
3 |
6 |
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 |
--------------------------------------------------------------------------------