我需要使用字符串值作为表格,以便在玩家重新连接到游戏服务器时恢复玩家的点数。这个字符串值是他们的配置文件 ID,它永远不会改变,我需要将数据放入字符串值(杀戮、死亡、爆头)中,以便有效地恢复这些点。我在互联网上快速浏览了一下,但我没有找到太多,因为我不知道这个具体的东西实际上叫什么。为了使它更容易,这是我到目前为止所拥有的:
if (not Omega.Playertable) then
Omega.Playertable = {};
System.LogAlways("Set static record table on first connect");
end
local ID = g_gameRules.game:GetProfileId(player.id);
if (not Omega.Playertable.ID) then
table.insert(Omega.Playertable, ID);
Omega.Playertable.g_gameRules.game:GetProfileId(player.id).Kills=0;
Omega.Playertable.g_gameRules.game:GetProfileId(player.id).Deaths=0;
Omega.Playertable.g_gameRules.game:GetProfileId(player.id).Headshots=0;
else
local Kills=Omega.Playertable.g_gameRules.game:GetProfileId(player.id).Kills;
local Deaths=Omega.Playertable.g_gameRules.game:GetProfileId(player.id).Deaths;
local Headshots=Omega.Playertable.g_gameRules.game:GetProfileId(player.id).Headshots;
g_gameRules.game:SetSynchedEntityValue(playerId, 101, Kills);
g_gameRules.game:SetSynchedEntityValue(playerId, 100, Deaths);
g_gameRules.game:SetSynchedEntityValue(playerId, 102, Headshots);
end
如您所见,我尝试将他们的 ID 添加到表中并基于此添加信息。我无法让系统读取我之前设置的“ID”值,所以我尝试添加获取 ID 的代码,但它不起作用。每个玩家的 ID 都是唯一的,所以我不能为此使用简单的数字系统。
有人可以向我指出我在这里做错了什么吗?如果我设法解决问题,我将在这里回答我自己的问题,以便对其他用户有所帮助。