2015-01-21 26 views
-6

我正在为游戏服务器修改编写一个插件。 基本上,如果插件没有旁路权限,插件会从玩家身上撤下。C#在json文件中检查数据

这很有效,但是当玩家从世界中移除一个已经放置的物体时,插件会显示错误信息并进入一个循环,给予玩家相同物品的说明。 (我想它需要休息一下,但我不确定)

我试图通过添加排除的项目来扩展插件。该插件会检查玩家试图放弃的物品ID是否在.json配置文件中列出。如果是,则说玩家放弃物品。如果未列出,则该项目被删除,除非玩家具有旁路权限。 我遇到的困难是我不知道如何检查.json文件中列出的项目ID。 另一种选择是保留.json文件并将允许的项目ID放入代码中,但我不知道如何执行此操作。

我知道这是非常基本和容易的,但只是从C#开始。我正在阅读我的一本关于基本C#的老师的书,但我很快就要完成这个项目。

http://pastebin.com/RgBmtus9

在此先感谢球员

+4

请[编辑您的问题](http://stackoverflow.com/help/privileges/edit)包含您想要阅读的JSON示例。 – dbc 2015-01-21 05:12:27

+3

另外,不要链接到一个大文件,请尝试创建一个[Minimal,Complete,and Verifiable](http://stackoverflow.com/help/mcve)示例来实现您想要完成的任务。如果你这样做,我们很可能会提供帮助。 – dbc 2015-01-21 05:14:42

+0

对不起,关于该文件,我复制粘贴到一个pastebin的代码。我可以向你保证这不是一项家庭作业。我们2年前才学过C++。我们学会制作的最复杂的程序是国际象棋游戏。这是供个人使用的。 ( – Defran 2015-01-21 05:18:23

回答

0

链接的代码片段似乎不完整或编译独立。通读,您的代码序列化和反序列化您的Config类看起来有效,但我实际上不能编译和测试您的DropBan类。

所以,这是你想要的?

public class DropBan : TerrariaPlugin 
{ 
    private Config config; 

    bool IsExcluded(int id) 
    { 
     if (config == null) 
     { 
      ReadConfig(); 
     } 
     return config != null && config.Exclusions != null && config.Exclusions.Contains(id); 
    } 

    public class Config 
    { 
     public int[] Exclusions = { 267, 188 }; 
    } 

    // Rest as as shown at http://pastebin.com/RgBmtus9 
} 
+0

是的,这将是解决方案,但它不会让玩家放弃排除的项目。 – Defran 2015-01-21 06:08:39