# 粒子缩放

function SetPariticle2Size takes handle Handle, real scale returns nothing 

function FrameSetModelPariticle2Size takes integer frame, real scale returns nothing 


1
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

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