# 粒子缩放
function SetPariticle2Size takes handle Handle, real scale returns nothing
function FrameSetModelPariticle2Size takes integer frame, real scale returns nothing
1
2
3
4
5
2
3
4
5
# 描述
SetPariticle2Size 可以用来 缩放 单位 / 特效的 粒子 2 的模型缩放 相当于是绿苹果里中间那 3 个缩放至
FrameSetModelPariticle2Size 是用来缩放 ui 模型上面的粒子 2 的
# 参数
类型 | 名字 | 说明 |
---|---|---|
单位 / 特效 /ui 模型 | Handle/frame | 句柄 |
实数 | scale| 这次的缩放值 是乘法累计的。
# 返回值
类型 | 说明 |
---|---|
integer | 颜色的 16 进制 ARGB |
# 例子
local unit u = GetTriggerUnit()
call SetPariticle2Size(u, 0.5) // 缩小一半
call SetPariticle2Size(u, 0.5) // 再缩小一半 相当于原本的1/4
call SetPariticle2Size(u, 4) //回到原始尺寸
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
local jass = require 'jass.common'
local japi = require 'jass.japi'
local u = jass.GetTriggerUnit()
japi.SetPariticle2Size(u, 0.5) // 缩小一半
japi.SetPariticle2Size(u, 0.5) // 再缩小一半 相当于原本的1/4
japi.SetPariticle2Size(u, 4) //回到原始尺寸
--例如以下代码 是将火凤凰投射物 缩小1万倍 再绑定到鼠标上, 鼠标拖丝的效果
local scale = 0.0001
local model = class.model:builder
{
x = 0,
y = 0,
w = 300,
h = 300,
model = [[Abilities\Weapons\PhoenixMissile\Phoenix_Missile.mdl]],
size = scale,
animation_index = 1,
}
function model:set_pariticle2_size(size)
size = math.max(0.0001, size)
if self.last_size then
japi.FrameSetModelPariticle2Size(self._id, 1 / self.last_size)
end
japi.FrameSetModelPariticle2Size(self._id, size)
self.last_size = size
end
model:set_pariticle2_size(scale)
ac.loop(33, function ()
local x, y = game.get_mouse_pos()
model:set_model_offset(x, y - model.h)
end)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46