找回密码
 register

QQ登录

只需一步,快速开始

查看: 20|回复: 0

[自写引擎] LuaFnTryRecieveMultiItem 匹配发放函数 函数使用教程

[复制链接]

[自写引擎] LuaFnTryRecieveMultiItem 匹配发放函数 函数使用教程

[复制链接]
  • 打卡等级:热心大叔
  • 打卡总天数:205
  • 打卡月天数:4
  • 打卡总奖励:203
  • 最近打卡:2025-06-04 09:26:46
Waylee

主题

0

回帖

2万

积分

仙帝

积分
21466
Waylee 2025-6-3 23:54 | 显示全部楼层 |阅读模式 | Google Chrome | Windows 10

马上注册,查看网站隐藏内容!!

您需要 登录 才可以下载或查看,没有账号?register

×

适用版本: 0.85.0600
函数编写:雪舞

📜 函数功能概述
LuaFnTryRecieveMultiItem 是一个用于在游戏服务器端批量创建物品并添加到玩家背包的Lua函数封装。它提供了完整的物品创建、验证、日志记录和背包管理功能,特别适合实现任务奖励、商城购买等批量物品发放场景。

🎯 核心功能亮点

  1. 批量物品创建 - 支持单次创建最多255个物品
  2. 绑定状态控制 - 可指定物品是否为绑定状态
  3. 完整验证机制 - 玩家状态、物品参数多重验证
  4. 日志追踪系统 - 详细记录物品创建来源和位置
  5. 智能背包管理 - 自动处理背包空间不足等情况

📝 参数详细说明

基础参数

参数位置 参数类型 参数说明 示例值
1 SceneID_t 场景ID 1001
2 ObjID_t 玩家ID 15001
3 INT 物品ID 20101001
4 BYTE 物品品质 3
5 UINT 物品数量 10
6 BOOL 绑定状态(0:非绑,1:绑定) 1

特殊参数说明

  • 物品品质(byQuality):

  • 绑定状态(bBind):

    • 0 = 非绑定(可交易)
    • 1 = 绑定(不可交易)
    • -1 = 使用物品默认绑定状态

🚀 调用示例代码

基础用法:发放10个绑定物品

-- 发放10个ID为20101001的绑定物品(品质3)
local success = LuaFnTryRecieveMultiItem(sceneId,selfId, 20101001, 3, 10, 1)

if success == 1 then
    SystemMsg("成功获得10个绑定宝物!")
else
    SystemMsg("物品发放失败,请检查背包空间!")
end 

进阶用法:动态品质物品发放

-- 根据玩家VIP等级决定物品品质
function GrantVipReward(playerId, vipLevel)
    local quality = 1
    if vipLevel >= 3 then quality = 3 end
    if vipLevel >= 5 then quality = 5 end

    return LuaFnTryRecieveMultiItem(
        sceneId 
        selfId, 
        VIP_REWARD_ITEM_ID, 
        quality, 
        1, 
        1  -- 绑定状态 
    )
end 

⚠️ 使用注意事项

  1. 参数验证规则

    • 物品数量:必须在1-255之间
    • 玩家状态验证:
      graph LR A[玩家存在] --> B[玩家可操作] B --> C[非疲劳状态] C --> D[物品发放]
  2. 日志系统说明
    物品发放会自动记录详细日志:

    • 操作类型:ITEM_CREATE_FROM_ABILITY_SCRIPT
    • 时间戳:自动记录操作时间
  3. 错误处理机制

错误类型 错误代码 解决方案
参数错误 RETURNFALSE 检查Lua参数数量和类型
无效物品 日志记录 验证物品ID是否存在
玩家状态异常 日志记录 检查玩家是否死亡/离线
背包已满 返回0 提示玩家清理背包空间

关键处理阶段

  1. 参数序列化:将Lua参数转换为C++数据结构
  2. 物品转换:使用TSerialHelper将物品ID转换为游戏可识别的序列化格式
  3. 背包管理:调用HumanItemLogic::CreateMultiItemToBag_Bind进行背包操作
  4. 日志记录:详细记录物品来源、位置等审计信息

🛠️ 最佳实践指南

场景推荐

  1. 任务系统奖励发放
  2. 活动奖励批量发放
  3. 商城购买物品到账
  4. 邮件附件领取
  5. 成就系统奖励发放

避坑指南

- 错误做法: 循环调用单物品发放函数 
+ 正确做法: 使用本函数批量发放

- 错误做法: 在玩家离线时尝试发放
+ 正确做法: 仅在玩家在线状态发放

- 错误做法: 忽略返回值处理 
+ 正确做法: 根据返回值提示玩家结果 

- 错误做法: 每次发放超过255个物品 
+ 正确做法: 大数量分批发放
您需要登录后才可以回帖 登录 | register

本版积分规则

雪舞知识库 | 浙ICP备15015590号-1 | 萌ICP备20232229号|浙公网安备33048102000118号 |网站地图|天天打卡

GMT+8, 2025-6-5 19:21 , Processed in 0.092845 second(s), 5 queries , Redis On.

Powered by XueWu Licensed

Copyright © Tencent Cloud.

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