2015-01-21 30 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