Vv引擎官方论坛

搜索
查看: 909|回复: 0

[脚本求助] 想用lua做一个捡取鉴定脚本!

[复制链接]
  • TA的每日心情
    开心
    2024-11-12 10:43
  • 签到天数: 166 天

    [LV.7]常住居民III

    25

    主题

    208

    帖子

    2401

    积分

    金牌会员

    Rank: 6Rank: 6

    积分
    2401
    发表于 2024-6-2 20:15:32 | 显示全部楼层 |阅读模式
    本帖最后由 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

    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    快速回复 返回顶部 返回列表