这段lua代码能在我的GMOD服务器上下载特定文件吗

最近我在建立我的GMOD服务器,渐渐地变得受欢迎了。但我想创建一个插件,让一些作品在加载屏幕上下载并在游戏中下载其他物品。这就是我创造的内容。

sv_auto_download:

// 在下面写入地图下载码

resource.addworkshop( "" )

function DownloadFiles()

    // 在下面编写纹理码

    resource.addworkshop( "" )
    return ""
end
hook.Add ( "PlayerInitialSpawn", "DownloadFiles" )
点赞
用户9117496
用户9117496

不行,这个做法行不通。

首先, PlayerInitalSpawn 在加载屏幕之后运行,而且 resource.addworkshop 是一个服务器端的函数,只有一次加载,所以服务器会正常下载工坊文件,这意味着附加组件将在加载屏幕时被下载。

你不能“在加载屏幕中下载一些工作坊链接,在游戏中下载其他内容”,也不应该强制玩家下载 10G 的模型如果他们不想要的话。

最好的方法是通过工作坊让玩家下载附加组件。

  1. 在 Steam 工作坊上创建一个收藏夹,例如http://steamcommunity.com/sharedfiles/filedetails/?id=1244735564

  2. 转到 http://steamcommunity.com/dev/apikey 并将你的 服务器 IP 地址 用作网站,将你的api密钥保存在安全的位置(即不要分享它)

  3. 转到 scrds.exe 的启动选项(可以是.bat文件或者在服务器控制台),添加 -authkey 3XAMPL3K3YF0RTH3T3ST3 +host_workshop_collection (collection ID),其中集合 ID 是集合 URL 的 ?id=1244735564 部分

然后,玩家将自动下载服务器内容,你可以很容易地添加更多附加组件,同时也为玩家快速下载更大的模型提供一种方式,以便他们希望在你的服务器上长时间游戏。

顺便说一下,你忘记将函数委托添加到 hook.Add 中了:

hook.Add ( "PlayerInitialSpawn", "DownloadFiles", DownloadFiles )

2017-12-26 15:07:35