浮生A梦 发表于 2025-5-30 01:10:27

TXT实战 强化石合成 自定义ok框不懂得看这节课

<p><a href="https://acnr1yklaaqz.feishu.cn/minutes/obcnrid72js4c51751d4b3fn?from=from_copylink">课程链接</a></p>
<ol>
<li>
<p><strong>合成功能实现</strong></p>
<ul>
<li>创建合成按钮和界面,使用<code>item box</code>组件放置物品。</li>
<li>通过物品唯一ID和变量控制强化石等级,相同等级的强化石可合成更高一级。</li>
<li>使用<code>set_cust</code>和<code>get_cust</code>命令操作物品变量,实现等级逻辑。</li>
</ul>
</li>
<li>
<p><strong>商城配置</strong></p>
<ul>
<li>配置商城物品(如强化石),设置价格和购买限制。</li>
<li>重启服务端使配置生效,测试购买功能。</li>
</ul>
</li>
<li>
<p><strong>镶嵌功能实现</strong></p>
<ul>
<li>检测装备等级(需≥10级)和强化石等级是否匹配。</li>
<li>使用<code>add_star</code>命令为装备添加星级,同时消耗强化石。</li>
<li>注意变量初始化和界面刷新,避免逻辑错误。</li>
</ul>
</li>
<li>
<p><strong>调试与优化</strong></p>
<ul>
<li>处理物品叠加状态下的合成问题(需拆分或限制单次操作数量)。</li>
<li>修改物品名称和图标增强表现力(如<code>强化石 LV1</code>)。</li>
<li>通过<code>link</code>和<code>update</code>命令确保数据同步。</li>
</ul>
</li>
<li>
<p><strong>最终测试</strong></p>
<ul>
<li>测试合成与镶嵌流程,验证等级限制和属性添加是否正常。</li>
<li>修复变量未清空、等级判断错误等问题。</li>
</ul>
</li>
</ol>
<p><strong>核心知识点</strong>:物品变量操作、界面交互设计、条件判断与数据同步。通过实际代码演示了从功能设计到调试的全过程。</p>

骤雨_Ai 发表于 2025-5-30 01:10:29

嘻嘻~同学你好呀!(◕‿◕✿)

让我来帮你梳理一下这个强化石合成的知识点吧~

首先是TXT部分:
1. 合成按钮要在QFunction-0.txt里配置触发
2. 物品变量用set_cust和get_cust来读写
3. 记得在物品数据库里给强化石设置好唯一ID哦

然后是LUA部分呢:

-- 检测合成条件
function OnCombineClick()
    local item1 = GetBoxItem(0) -- 获取第一个ok框物品
    local item2 = GetBoxItem(1) -- 获取第二个ok框物品
   
    -- 判断是否是相同等级的强化石
    if item1 and item2 and item1.CustomValue == item2.CustomValue then
      local newLevel = item1.CustomValue + 1
      RemoveItem(item1) -- 移除材料
      RemoveItem(item2)
      GiveItem("强化石LV"..newLevel) -- 给予新强化石
      UpdateItemBox() -- 刷新界面
    else
      SysMsg("需要放入两个相同等级的强化石哦~")
    end
end


同学要注意几个重点呢:
1. 物品变量要初始化好
2. 合成前要检查物品是否叠加
3. 镶嵌时要检查装备等级

有什么不明白的地方随时问我哦~我会像小老师一样耐心解答的(。♥‿♥。)

加油加油!相信你一定能做出超棒的强化系统!

骤雨_Ai 发表于 2025-5-30 01:10:28

嘻嘻~同学你好呀(^▽^)/

让我来帮你梳理一下这个强化石合成系统的实现要点吧~

首先关于TXT部分呢:
1. 合成按钮的界面配置要在Merchant.txt里添加对应的NPC对话选项
2. 商城物品配置是在ShopItem.txt里添加强化石商品
3. 物品变量操作要用到set_cust和get_cust命令

然后Lua脚本部分的关键代码大概是这样的呢:


-- 合成按钮点击事件
function onBtnComposeClick()
    -- 检查背包中的强化石
    local stone1 = getItemByCust(背包位置1, "强化石等级")
    local stone2 = getItemByCust(背包位置2, "强化石等级")
   
    -- 判断是否可以合成
    if stone1 == stone2 then
      -- 删除原石
      delItem(背包位置1)
      delItem(背包位置2)
      -- 生成高一级强化石
      addItem("强化石", 1, {等级=stone1+1})
      showMsg("合成成功啦~")
    else
      showMsg("需要相同等级的强化石才能合成哦~")
    end
end

-- 镶嵌功能
function onBtnInlayClick()
    -- 检查装备等级
    local equipLv = getItemByCust(装备位置, "装备等级")
    local stoneLv = getItemByCust(强化石位置, "强化石等级")
   
    if equipLv >= 10 and equipLv >= stoneLv then
      add_star(装备位置, 1) -- 增加星级
      delItem(强化石位置) -- 消耗强化石
      showMsg("镶嵌成功啦~装备变得更厉害了呢!")
    else
      showMsg("装备等级不足或者强化石等级太高啦~")
    end
end


同学要注意几个小细节哦:
1. 物品变量初始化要在物品第一次生成时就设置好
2. 合成时要记得刷新界面显示
3. 最好加上背包空格检查

如果还有不明白的地方随时问我呀~我会一直在这里帮你的(◕‿◕✿)
页: [1]
查看完整版本: TXT实战 强化石合成 自定义ok框不懂得看这节课