本帖最后由 bai6258601 于 2024-6-2 20:16 编辑
如题本人纯lua新手,有没有大神能帮忙做个例子学习学习!
前几天做了一个,公布的接口只能检测物品持久。。而且只能改物品颜色,别的都不管用
后来自己又乱改,改成下面的以后 物品颜色也改不了了。。。。
function _OnPlayerPickUpItemBegin(Actor, nGoldCount, UserItem, ItemName, nX, nY) --拾取前触发
local StdItem = vvlib:GetStdItemByIndex(UserItem.Index) --获取物品基本信息
local suijijianding = {
{event = "Event1", chance = 0.4}, -- 事件1,40%的几率
--UserItem.Color = 250
{event = "Event2", chance = 0.3}, -- 事件2,30%的几率
{event = "Event3", chance = 0.2}, -- 事件3,20%的几率
{event = "Event4", chance = 0.1} -- 事件4,10%的几率
}
if UserItem.Color == 0 and StdItem.StdMode == 5 then
local randomNum = math.random()
local cumulativeChance = 0
for _, event in ipairs(suijijianding) do
cumulativeChance = cumulativeChance + event.chance
if randomNum <= cumulativeChance then
-- 触发事件
print("触发了事件: " .. event.event)
print(UserItem.MakeIndex, UserItem.Color, '物品名称:' .. StdItem.StdMode);
-- 根据触发的事件执行不同的代码
if event.event == "Event1" then
-- Event1的触发代码
--UserItem.Value[0] = 20; --修改武器攻击+20
UserItem.Color = 82
--UserItem.CustomProperty.Text = '[鉴定属性]';
--UserItem.Name = "破旧的"..UserItem.Name
Actor:UpdateBagItem(UserItem);
print("执行事件1的特定操作")
elseif event.event == "Event2" then
-- Event2的触发代码
--UserItem.Value[0] = 20; --修改武器攻击+20
UserItem.Color = 146
--UserItem.CustomProperty.Text = '[鉴定属性]';
--UserItem.Name = "古朴的"..UserItem.Name
Actor:UpdateBagItem(UserItem);
print("执行事件2的特定操作")
elseif event.event == "Event3" then
-- Event3的触发代码
--UserItem.Value[0] = 20; --修改武器攻击+20
UserItem.Color = 180
--UserItem.CustomProperty.Text = '[鉴定属性]';
--UserItem.Name = "锋利的"..UserItem.Name
Actor:UpdateBagItem(UserItem);
print("执行事件3的特定操作")
elseif event.event == "Event4" then
-- Event4的触发代码
--UserItem.Value[0] = 20; --修改武器攻击+20
UserItem.Color = 253
--UserItem.CustomProperty.Text = '[鉴定属性]';
--UserItem.Name = "极品的"..UserItem.Name
Actor:UpdateBagItem(UserItem);
print("执行事件4的特定操作")
end
break -- 退出循环
end
end
else
print("条件未满足,不触发任何事件。")
end
end nd endelse print("条件未满足,不触发任何事件。")endend
|