bai6258601 发表于 2024-6-2 20:15:32

想用lua做一个捡取鉴定脚本!

本帖最后由 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 = 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 = 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 = 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 = 20;--修改武器攻击+20
UserItem.Color = 253
--UserItem.CustomProperty.Text = '[鉴定属性]';
--UserItem.Name = "极品的"..UserItem.Name
Actor:UpdateBagItem(UserItem);
                print("执行事件4的特定操作")
            end
            break -- 退出循环
      end
    end
else
    print("条件未满足,不触发任何事件。")
end
endnd    endelse    print("条件未满足,不触发任何事件。")endend

页: [1]
查看完整版本: 想用lua做一个捡取鉴定脚本!