Gmod中VGUI按钮触发Net请求报错求助
GMod VGUI按钮发送Net请求报错排查与解决
问题背景
我有两个Lua脚本:
init.lua:处理Net请求的服务器端脚本change_team.lua:处理VGUI按钮并发送Net请求的客户端脚本
点击DButton2按钮尝试发送Net请求时,触发如下报错:
[ERROR] gamemodes/redwarbonds/gamemode/change_team.lua:36: Calling net.Start with unpooled message name! (Did you forget to call util.AddNetworkString serverside?) 1.Start - [C]:-1 2. DoClick - gamemodes/redwarbonds/gamemode/change_team.lua:36 3. unknown - lua/vgui/dlabel.lua:237 (x2)
我知晓该报错通常因服务器端未调用util.AddNetworkString导致,但误以为自身已添加该语句,还怀疑问题出在VGUI按钮的点击函数,想确认Net请求能否与VGUI配合使用。
问题根源
服务器端init.lua中存在笔误:将util.AddNetworkString误写为until.AddNetworkString。until是Lua的循环关键字,并非GMod的网络工具库,因此根本没有完成网络消息名的注册,客户端调用net.Start时自然会触发“未池化消息名”的报错。
修复步骤
- 打开服务器端的
init.lua,找到包含until.AddNetworkString的代码行 - 将其修正为正确的
util.AddNetworkString("你的网络消息名"),确保消息名与客户端net.Start中使用的完全一致 - 重启服务器以加载修正后的脚本
额外说明
Net请求完全可以和VGUI按钮配合使用。只要服务器正确注册网络消息名,在VGUI按钮的DoClick回调中执行net.Start + net.SendToServer的流程是完全合法的,你的VGUI按钮逻辑本身没有问题,故障仅由服务器端的笔误引发。
内容的提问来源于stack exchange,提问作者Fix Egg
相关产品推荐
相关产品推荐

