2017-06-28 56 views
0

代碼:錯誤而編譯:DASD.cs(109195):錯誤CS1503

private void Executing(PlayerSession Player, string response, int code) 
{ 
    switch (code) 
    { 
     case 0: 
      Debug.LogError("Api does not responded to a request"); 
      break; 
     case 200: 
      Dictionary<string, object> Response = JsonConvert.DeserializeObject<Dictionary<string, object>>(response, new KeyValuesConverter()); 
      if (Response != null) 
      { 
       switch (Convert.ToInt32(Response["code"])) 
       { 
        case 100: 
         int i = 0; 
         List<object> data = Response["data"] as List<object>; 
         foreach (object pair in data) 
         { 
          if (i >= 14) 
          { 
           hurt.SendChatMessage(Player, $"Вы не можете получить больше 14 предметов за раз."); 
           return; 
          } 

          Dictionary<string, object> iteminfo = pair as Dictionary<string, object>; 

          if(iteminfo.ContainsKey("command")) 
          { 
           string command = iteminfo["command"].ToString().Replace('\n', '|').ToLower().Trim('\"').Replace("%steamid%", Player.SteamId.m_SteamID.ToString()).Replace("%username%", Player.Name); 
           String[] CommandArray = command.Split('|'); 
           foreach (var substring in CommandArray) 
           { 
            ConsoleManager.Instance.ExecuteCommand(substring); 
           } 
           hurt.SendChatMessage(Player, $"Получен товар из магазина: <color=lime>\"{iteminfo["name"]}\"</color>."); 
           SendGived(new Dictionary<string, string>() { { "gived", "true" }, { "id", $"{iteminfo["id"]}" } }, Player); 
           return; 
          } 

          int ItemID = Convert.ToInt32(iteminfo["item_id"]); 
          int Amount = Convert.ToInt32(iteminfo["amount"]); 
          ItemInstance Item = new ItemInstance(GlobalItemManager.Instance.GetItem(ItemID), Amount); 

          if (Player.WorldPlayerEntity.GetComponent<Inventory>().GiveItemServer(Item)) 
          { 
           Singleton<AlertManager>.Instance.GenericTextNotificationServer($"Получен товар из магазина: \"{iteminfo["name"]}\" в количестве {Amount}", session.Player); 
          } else { 
           hurt.SendChatMessage(Player, $"В инвентаре недостаточно места для получения <color=lime>\"{iteminfo["name"]}\"</color>"); 
           return; 
          } 
          i++; 
         } 
         break; 
        case 104: 
         hurt.SendChatMessage(Player, $"Ваша корзина пуста!"); 
         break; 
       } 
      } 
      else 
       Debug.LogWarning(response); 
      break; 
     case 404: 
      Debug.LogError("Response code: 404, please check your configurations"); 
      break; 
    } 
} 

錯誤的行

Singleton<AlertManager>.Instance.GenericTextNotificationServer($"Получен товар из магазина: \"{iteminfo["name"]}\" в количестве {Amount}", Player); 

錯誤:

Error while compiling: DASD.cs(109,195): error CS1503: Argument '#2' cannot convert 'PlayerSession' expression to type 'uLink.NetworkPlayer'

+0

是不是錯誤_tell_你怎麼了? – Clonkex

回答

0

方法Singleton<AlertManager>.Instance.GenericTextNotificationServ‌​er()接受在其第二參數類型uLink.NetworkPlayer的變量,您通過類型PlayerSession

所以顯然你需要通過session而不是session.Player

+0

錯誤CS0103:在當前上下文中不存在名稱'session' –

+0

@ПавелПрусс:您有一行代碼'Singleton .Instance.GenericTextNotificationServer($「Получентоваризмагазина:\」{iteminfo [「name 「]} \」вколичестве{Amount}「,session.Player);'你明確擁有'session'的地方。 – abatishchev

+0

我的錯誤,我很抱歉。 當存在字符串session.Player時,出現錯誤「錯誤CS0103:名稱會話'在當前上下文中不存在」。當它只是一個球員字符串,它出去 「參數'#2'不能將'PlayerSession'表達式轉換爲類型'uLink.NetworkPlayer'」 –