关于:
脚本作者:startalee
原帖链接:点击右侧更多信息
作者主页:点击右侧获取帮助
搬运汉化:An
详细注释:ChatGPT Plus
脚本说明:
此脚本用于在屏幕上绘制粒子特效,特效可以调整数量以及颜色。
功能位置:
Visuals -> Other -> Extra
截图预览:
源代码(如不能正常下载,可复制保存):
脚本作者:startalee
原帖链接:点击右侧更多信息
作者主页:点击右侧获取帮助
搬运汉化:An
详细注释:ChatGPT Plus
脚本说明:
此脚本用于在屏幕上绘制粒子特效,特效可以调整数量以及颜色。
功能位置:
Visuals -> Other -> Extra
截图预览:
源代码(如不能正常下载,可复制保存):
粒子特效:
--[[
----------------------------------------------------------------------------------
----------------------------------------------------------------------------------
----------------------------------------------------------------------------------
_ ___ __ __ __ __ _ ____ _____ --
/ \ |_ _|| \/ |\ \ / // \ | _ \ | ____| ___ _ __ --
/ _ \ | | | |\/| | \ \ /\ / // _ \ | |_) || _| / __|| '_ \ --
/ ___ \ | | | | | | \ V V // ___ \ | _ < | |___ _| (__ | | | | --
/_/ \_\|___||_| |_| \_/\_//_/ \_\|_| \_\|_____|(_)\___||_| |_| --
--
____ _ ____ _ --
| _ \ ___ __ __ ___ _ __ ___ __| | | __ ) _ _ / \ _ __ --
| |_) |/ _ \\ \ /\ / // _ \| '__|/ _ \ / _` | | _ \ | | | | / _ \ | '_ \ --
| __/| (_) |\ V V /| __/| | | __/| (_| | | |_) || |_| | / ___ \ | | | | --
|_| \___/ \_/\_/ \___||_| \___| \__,_| |____/ \__, | /_/ \_\|_| |_| --
|___/ --
----------------------------------------------------------------------------------
------------------------本脚本为AIMWARE.cn论坛免费汉化搬运--------------------------
----------------------------------------------------------------------------------
--]]
--[[
--粒子特效(Particles) 原帖链接https://aimware.net/forum/thread/176332
--原作者:startalee 主页链接https://aimware.net/forum/user/343233
--搬运汉化:An
--详细注释:ChatGPT Plus
--]]
-- 获取 GUI 的引用,指定 Visuals -> Other -> Extra 的路径
local gui_ref = gui.Reference("Visuals", "Other", "Extra")
-- 创建一个复选框,用于控制粒子颜色是否可以修改
local lua_particle_colored = gui.Checkbox(gui_ref, "lua_particle_colored", "粒子颜色修改", true)
-- 创建一个颜色选择器,用于选择粒子的颜色
local lua_particle_color = gui.ColorPicker(lua_particle_colored, "lua_particle_color", "Particle Color", 255, 65, 50)
-- 获取屏幕的宽度和高度
local Screen_Width, Screen_Height = draw.GetScreenSize()
-- 定义一个空表格,用于存储粒子的属性
local particles = {}
-- 定义一个静态的 curtime 变量,用于控制粒子的生成间隔
local static_curtime = 0
-- 定义一个全局的 alpha 变量,用于控制粒子的透明度
local alpha = 0
-- 定义粒子的生命周期,单位为秒
local particle_lifetime = 5
-- 创建一个滑块,用于控制粒子的可见性百分比
local visibility_percentage_checkbox = gui.Slider(gui_ref, "lua_particle_visibility", "粒子数量", 50, 0, 100)
-- 定义一个函数,用于生成粒子
local function set_particles()
if globals.CurTime() - static_curtime >= 0.05 then
for _ = 1, 5 do
local random_size = math.random(4, 8)
local random_speed_x = math.random(-5, 5)
local random_speed_y = math.random(-5, 5)
local particle = {
x = math.random(0, Screen_Width),
y = math.random(0, Screen_Height),
size = random_size,
speed_x = random_speed_x * math.random(1, 2),
speed_y = random_speed_y * math.random(1, 2),
creation_time = globals.CurTime()
}
if math.random(100) <= visibility_percentage_checkbox:GetValue() then
table.insert(particles, particle)
end
end
static_curtime = globals.CurTime()
end
end
-- 定义一个函数,用于绘制粒子
local function draw_particles()
for i = #particles, 1, -1 do
local particle = particles[i]
if particle then
particle.x = particle.x + particle.speed_x
particle.y = particle.y + particle.speed_y
if particle.x < 0 or particle.x > Screen_Width then
particle.speed_x = -particle.speed_x
end
if particle.y < 0 or particle.y > Screen_Height then
particle.speed_y = -particle.speed_y
end
if globals.CurTime() - particle.creation_time > particle_lifetime then
table.remove(particles, i)
else
local alpha_ratio = (particle.size - 6) / 6
alpha = math.min(math.max(alpha + (255 - alpha) * 0.05, 0), 255) * alpha_ratio
local r, g, b = lua_particle_colored:GetValue() and lua_particle_color:GetValue() or 255, 255, 255
draw.Color(r, g, b, alpha)
draw.SetTexture(nil)
local gradient_size = particle.size * 0.5
local gradient_alpha = alpha * 0.5
for j = 1, gradient_size do
draw.Color(r, g, b, gradient_alpha)
draw.FilledCircle(particle.x, particle.y, particle.size - j)
gradient_alpha = gradient_alpha * 0.9
end
draw.Color(r, g, b, alpha)
draw.FilledCircle(particle.x, particle.y, particle.size * 0.3)
end
end
end
end
-- 注册回调函数,用于在绘制时生成和绘制粒子
callbacks.Register("Draw", set_particles)
callbacks.Register("Draw", draw_particles)